MySQL vs MariaDB: どちらのMySQL系統を選ぶ?
MySQLはOracleが管理する元祖データベースであり、MariaDBはMySQLの創設者によって作られたコミュニティ主導のforkで、ほぼドロップイン互換です。
MariaDBはMySQLからforkし、共通のクライアントプロトコルとSQLを持ちながら近い関係を保ってきましたが、プロジェクトは時間とともに分岐しました。MariaDBはstorage engine(Aria、ColumnStore)、いくつかの独自機能、完全にオープンなガバナンスを追加しています。MySQLはOracleの投資と幅広いエンタープライズサポートの恩恵を受けています。ほとんどのアプリでは両者は交換可能ですが、新しい機能や特定のengineは異なります。
| MySQL | MariaDB | |
|---|---|---|
| 起源 | 元祖(Oracle) | コミュニティのfork |
| 互換性 | リファレンス | ほぼドロップイン |
| Storage engine | InnoDB中心 | InnoDB + Aria/ColumnStore |
| ガバナンス | Oracle主導 | オープンな財団 |
| 最適な用途 | Oracleエコシステム、同等性 | オープンなガバナンス、追加engine |
互換性と機能
標準的なCRUDや一般的なWebアプリでは、多くの場合一方を他方に置き換えられます。分岐が現れるのは、新しいJSON関数、システムバージョン管理されたテーブル、特定のレプリケーション機能、storage engineです。完全な同等性を前提とする前に、アプリが依存している正確な機能を確認してください。
CIにおいて
どちらもほぼ同一のセットアップでservice containerとして動作します。デフォルトが異なるため、バージョンを明示的に固定してください。どちらもマネージドrunnerで動作し、より高速なrunnerは起動とmigrationのテストステップを短縮します。
結論
Oracleの後ろ盾と最も広い互換性の期待を持つリファレンス実装が欲しいなら、MySQLです。完全にオープンなガバナンスに加えて追加のstorage engineや機能が欲しいなら、MariaDBです。両者は十分に近いままなので、多くのチームは生のパフォーマンスではなく、ホスティング、ライセンスの安心感、特定の機能ニーズに基づいて選びます。