MariaDBの安定版 Ver. 10.0がリリース

以前にシステム導入の際に、データソースが多岐に渡るケースがあり、どうやってつなげようかと考えていた際に、MySQLのFederated Storage Engineを使おうかと検討していたのですが、開発も事実上止まっていた事もあり、それよりはMariaDBのConnect Storage Engineの方が良いかもと調べていたことがありました。結局は当時、β版だったこともあり採用には至りませんでしたが、先月3/31についにGA版がリリースされています。

 そもそもMariaDBって

MariaDBはMySQLからのforkプロジェクトとしてスタートしたDB。MySQLが米Oracleに買収されたことを契機に、オリジナル開発者のMichael “Monty" Widenius氏らが中心となり、2009年に開発プロジェクトを立ち上げました。現在は非営利団体のThe MariaDB Foundationの下で開発が進んでいます。また、Redhat, Fedora, openSUSE, Slackwareなど多くのLinuxディストリビューションでMariaDBの採用が進んでいます。

2つの系統

MariaDBには5.5系と10系の2つのバージョンが存在します。もともとMySQLと互換を目指して構築されており、MariaDB 5.5はMySQL5.5を元に独自機能の追加や安定性確保のための多くの改善が取り入れられているバージョンです。設定ファイルの書式なども含めて、利用者側からみた機能の違いは軽微で、ほぼ互換性を有しています。さらにMyISAMやInnoDBなどのMySQL標準のストレージエンジンに加え、XtraDB, Ariaなどのストレージエンジンも利用可能になっています。

MySQL 5.6では大規模なリファクタリングが行われました。このためRHELとCentOSのような関係性ではないですが、MySQLをベースにしてMariaDB独自の改良を継続することは難しくなったため、5.5をベースにして、5.6から新機能の選択的な追加、ならびにMariaDB独自の機能追加を行う方針となり、バージョン番号も一気に10.0まで引き上げられました。

MariaDBでは、MySQLと比較して、クエリー・オプティマイザーの性能が向上、サポートするストレージエンジンの追加、Information schemaからユーザーや表、索引の統計情報が参照可能になるなどのメリットがあります。またSQLレベルでは、REGEXPがマルチバイト対応になった違いはありますが、ほぼ互換。通信はMySQL, MariaDBともに同じ通信プロトコルなので、従来のMySQLのドライバーをそのまま利用してMariaDBと接続できます。このため、MySQL→MariaDBへの移行はきわめてスムーズに行えると思います。

MariaDB 10の新機能

MySQLとの互換性が重視されている5.5系と異なり、MariaDB 10では積極的に新機能の導入が進められています。レプリケーション、NoSQL、シェーディングなどの機能が強化されました。レプリケーションでは、スレーブ上にある複数のクエリを並列実行できる並列レプリケーションや、スレーブが複数のマスタを持つことが出来るマルチソースレプリケーションが導入されています。これにより分散したデータに対しての包括的なビューを作ることが出来ます。

ユニークな機能としては、外部にあるデータに動的にアクセスするためのCONNECTストレージエンジンが導入されています。かつてFederatedストレージエンジンと呼ばれていたものの後継にあたるわけですが、ログファイルなどの非構造データやCSVやXMLファイル、ODBCデータベースなどにアクセスでき、MariaDBを通じて間接的に各データソースを参照できます。従来はETL等を導入する必要がありましたが、データが混在する環境でのデータ分析には便利な機能でしょう。