開発の経緯とMariaDB誕生の背景
MySQLの生い立ち
MySQLは1995年にスウェーデン企業MySQL ABによって開発・公開され、オープンソースかつ高性能で使いやすい関係データベース管理システム(RDBMS)として急速に普及しました。2008年にMySQL ABがサン・マイクロシステムズに買収され、さらに2010年にサンがOracle社に買収されたことで、MySQLはOracle社の管理下に置かれます。これによりコミュニティでは「MySQLのオープンソースとしての将来」が懸念されるようになりました。
MariaDB誕生の背景
MySQLの創始者の一人であるMichael “Monty” Widenius氏は、Oracle社による買収後のライセンスや配布モデルへの懸念から、2009年にMySQLをフォーク(分岐)してMariaDBを開発しました。MariaDBの名称はMonty氏の娘「Maria」に由来し(MySQLは同氏の娘「My」に由来)、Monty氏はMySQLのオープンソース精神を維持・発展させるためにMariaDBを立ち上げました。
以降、MySQLとMariaDBは別々の開発体制で進化を遂げていますが、MariaDBはMySQLと高い互換性を保ち、ユーザーが容易に移行できるよう設計されています。例えば、データファイル形式やクライアントAPI、プロトコル、ポート番号などはMySQLと同一であり、アプリケーションの修正なしにMariaDBへ置き換え可能なドロップイン互換を目指しています。
機能とパフォーマンスの違い
MySQLとMariaDBは共通のコードベースから派生したため基本的な機能やSQL文法は非常に類似しており、両者ともACID特性やSQL標準に準拠しています。一方で、フォーク後の独自開発により以下のような違いが生まれています。
クエリ最適化とパフォーマンス
MariaDBはクエリオプティマイザの改良が重ねられ、複雑なSQLや大規模データセットで高いパフォーマンスを発揮するよう最適化されています。特に高度なスレッドプール機能をオープンソースで実装し、20万以上の同時接続を処理できるとされています。MySQLではスレッドプール機能はOracleの商用版のみで提供され、コミュニティ版ではMariaDBほど大量の接続処理を行うことができません。
ストレージエンジンの拡張
MariaDBはフォーク後に独自エンジンを追加しています。トランザクションに強い「Aria」、大規模データ分析向けの「ColumnStore」、Facebookが開発した高速書き込みエンジン「MyRocks」などが組み込まれています。MySQLもCSVやMemoryなどのエンジンを提供していますが、MariaDBの方が多様なエンジンを標準提供しています。
レプリケーションとクラスタリング
MariaDBはGalera Clusterによる同期マルチマスタークラスターを標準サポートし、高可用性クラスタを容易に構築できます。MySQLはInnoDB Cluster(Group Replication)を別途提供していますが、MariaDBのほうが早期から統合されており、簡単にセットアップ可能です。
新機能の追加
MariaDBは仮想カラム、Oracle Database互換のシーケンス、ユーザーロールの強化、パスワード認証プラグインの強化など、MySQL未対応の機能を先行実装しています。1つのテーブル内でパーティションごとに異なるエンジンを使う高度な機能も提供しています。
互換性と移行性
MariaDBの設計目標はMySQLとの高い互換性を保つことであり、多くの場合、アプリケーションを修正せずMariaDBへ移行可能です。実際にSQL文法やデータ定義ファイル、ネットワークプロトコルはMySQLと同じです。
商用利用におけるライセンスの違い
MySQLとMariaDBは基本的にGPLライセンスですが、MySQLはOracleによる商用版(プロプライエタリライセンス)も存在します。一方、MariaDBは完全にGPLライセンスのみで提供され、商用製品に組み込む際はGPL遵守が必要です。MariaDBは商用サポートやコンサルティングも提供していますが、コードは常にオープンです。
Linuxディストリビューションでの標準採用状況
Red Hat系(RHEL, CentOS)、Fedora、Debian、SUSE系はMariaDBを標準採用しています。Ubuntuは現在でもMySQLを標準採用していますが、MariaDBへの移行の議論もあります。
世界と国内での利用シェア・人気の動向
世界的にMySQLはトップクラスのシェアを維持し、MariaDBは約2%と小規模ながら徐々にシェアを伸ばしています。国内でもMySQLが広く普及していますが、MariaDBへの関心や移行事例も増加しています。
総じて、ユーザー企業は自社の要求(性能、機能、サポート、ライセンス方針)を考慮し、MySQLまたはMariaDBを選択することになります。
MySQL、MariaDB機能比較表
MySQLとMariaDBの主要機能比較表(開発者向け)
比較項目 | MySQL | MariaDB |
---|---|---|
開発元 | Oracle Corporation | MariaDB Foundation / Corporation |
ライセンス形態 | GPL v2 + 商用ライセンス(デュアルライセンス) | 完全GPL(商用ライセンスなし) |
スレッドプール機能 | 商用版のみ対応 | コミュニティ版で標準対応 |
主なストレージエンジン | InnoDB, MyISAM, CSV, Memory | InnoDB, Aria, ColumnStore, MyRocks, TokuDB |
クラスタリング | InnoDB Cluster(Group Replication) | Galera Cluster(標準対応) |
クエリ最適化 | 標準的なオプティマイザ | 高度なオプティマイザと統計処理 |
仮想カラム | 5.7以降で対応 | 5.2以降で対応 |
シーケンス(SEQUENCE) | 非対応(AUTO_INCREMENTのみ) | Oracle互換のSEQUENCEをサポート |
ユーザーロール | 8.0以降で対応 | 早期から対応 |
マルチソースレプリケーション | 対応 | 対応 |
クライアント/接続互換性 | 独自のMySQLクライアントとAPI | MySQL完全互換(ドロップイン対応) |
パーティショニング | 標準サポート | エンジンごとに異なるパーティション設定可 |
標準採用OS | Ubuntu | RHEL, CentOS, Fedora, Debian, SUSE |
開発体制 | Oracleが主導、外部コントリビューションは制限 | オープンなGitHubベースの開発体制 |
利用シェア(世界) | 約40%以上 | 約2%、増加傾向 |
利用シェア(日本) | 高い(LAMP構成で広く利用) | 増加中(クラウド基盤やLinuxで普及) |