MariaDBの概要
MariaDBは、世界でもっとも人気のあるデータベースサーバの1つです。MySQLの元開発者によりオープンソースソフトウェアとして開発が行われています。データにアクセスするSQLインターフェースを提供するリレーショナルデータベースです。MariaDBのユーザの中には、Wikipediaや、Facebook、Google などの注目すべきユーザがいます。
MariaDBは、銀行のウェブサイトから幅広いアプリケーションで、構造化された情報データをやりとりします。MySQLの機能強化版もしくは、置き換えという位置づけになっています。MariaDBは幅広いユースケースに対応できるストレージエンジンや、プラグイン、その他多くのツールなどが利用でき、高速で、拡張性があり、堅牢であるため広く利用されています。MariaDB10.2以降ではGIS(地理情報システム)や、 JSON(JavaScript Object Notation)機能も含まれています。
MariaDBの動作環境
以下のバイナリが提供されており、対応するOS/CPUは以下のとおりです。
バイナリパッケージ | OS/CPU |
---|---|
tar.gzファイル | ソースコード |
MSI パッケージ | Windows(64ビット) |
ZIP ファイル | Windows(64ビット) |
tar.gzファイル | Linux(64ビット) |
DEBパッケージ | Debian/Ubuntu |
RPM パッケージ | RedHat Enterprise Linux/CentOS/Fedora/Mageia/OpenSUSE/SUSE Enterprise Linux |
pacman パッケージ | Arch Linux |
※MariaDBは主要なLinuxディストリビュータの標準レポジトリで利用可能なので、OSのパッケージマネージャから、mariadb-server を探すだけで利用可能です。
参考:https://mariadb.org/download/
MariaDBのライセンス
MariaDBのライセンスは、GPLのバージョン2によりリリースされています。MariaDBのクライアントライブラリは、クローズドソースのソフトウェアとの連携を可能とするために、LGPLによりリリースされています。
MariaDBの主な特徴
MariaDBは以下の特徴があります。
多くのストレージエンジンを提供 |
標準のMyISAM、BLACKHOLE、CSV、MEMORY、
ARCHIVE、MERGE ストレージエンジンに加え、以下のものを含んでいます。 ・ColumnStore(データウェアハウス用に最適化されたカラム志向ストレージエンジン) ・Aria ・InnoDB(10.2以降はデフォルトのストレージエンジン) ・XtraDB (10.1までは、デフォルトのストレージエンジン) ・MyRocks(Facebook社で開発された性能・拡張性に優れたストレージエンジン) ・FederateX(Federatedからの置き換え) ・OQGRAPH ・S3 Storage Engine ・SphinxSE ・CONNECT ・SEQUENCE ・Spider ・Mroonga(CJKに対応した全文検索用ストレージエンジン) |
---|---|
性能改善の実施 |
主なものでは、以下のような性能改善が実施されています。 ・サブクエリの効率化 ・レプリケーションの高速化(バイナリログのグループコミット) ・並列レプリケーション ・Windows上での InnoDB 非同期IOの改良 ・MEMORYエンジンのインデックス高速化 ・MyISAM のキーキャッシュや、ハッシュサイズの性能改善 ・CHECKSUM TABLEコマンドの高速化 ・文字コード変換の性能改善 ・スレッドプールの改良による速度向上 ・MariaDBへのクライアント接続時のスピードを改善 ・デバッグが利用されていないときのDBUGコードの改善 ・Ariaストレージエンジン使用時の複雑なクエリーの高速化 ・テストスイートの拡張による多くテストをさらに高速化 |
機能拡張と新機能 |
主なものでは以下のような機能拡張および、新機能が加わっています。 ・Window関数の対応 ・マイクロ秒精度 ・DECIMAL型での小数点以下の最大桁数が30桁から38桁に拡張 ・WITH ステートメントによるCTE(Common Table Expressions)に対応 ・再帰CTEに対応 ・CHECK制約に対応 ・BLOBやTEXT型でDEFAULTをサポート ・Oracle風のEXECUTE IMMEDIATEステートメントに対応 ・JSON関連関数の追加 ・JOINの最適化を行う "Table Elimination" 機能 ・仮想列(実在しない自動計算列) ・CONSTRAINTやカラム定義においてCHECK制約式による制限の追加が可能 ・BLOBやTEXT型でもDEFAULT値の利用が可能 ・ユーザ統計情報の拡張 ・ユーザ単位でのKILLコマンドの実行 ・クエリーID単位でのKILLコマンドの実行 ・ユーザ認証のプラグイン機能 ・ストレージエンジンに応じた CREATE TABLE 構文 ・INFORMATIN SCHEMA の PLUGINS テーブルの機能拡張 ・バイナリログでグループコミットが利用可能 ・mysqlbinlog コマンドに "--rewrite-db" オプションの追加 ・特定のコマンドにおいて、実行状況を表示する機能を追加 ・JOIN および、サブクエリの高速化 ・HandlerSocket 機能の追加および、HANDLER構文の高速化 ・Dynamic Columns機能を追加 ・GIS機能の追加 ・マルチソースレプリケーション機能の追加 ・グローバルトランザクションIDをサポート ・SHOW EXPLAIN コマンドの追加 ・Roleベースの権限機能の追加 ・PCRE 正規表現ライブラリの更新 ・DELETE ... RETURNING構文のサポート ・システム変数のデフォルト値の一部変更 ・その他多数(各バージョンのリリース情報を参照のこと) |
テスト方法の改良 |
・テストスイートによりより多くのテストを実施。 ・テストケースバグを改修。 ・よりよい機能テストを実施するため、異なるconfigureオプションによるテストを構築 ・無効なテストを削除。 |
少ない警告やバグ |
・可能なかぎり多くのバグを修正し、可能なかぎり多くのコンパイラ警告を解消。 |
真のオープンソース |
・MariaDBの全てのコードは、GPL、LGPLもしくはBSDによってリリースされています。 ・MariaDBはMySQL Enterprise Editionのようなクローズドソースモジュールを含んでいません。MySQL 5.5 Enterprise Editionのクローズドソース機能のすべては、MariaDBオープンソースバージョンに含まれています。 ・MariaDBのクライアントライブラリは、クローズドソースのソフトウェアとの連携を可能とするために、LGPLによりリリースされてい ます。 ・MariaDBはすべてのバグ修正のためのテストコードを含んでいます。OracleはMySQL5.5で修正された新しいバグに対して、テストケースを提供していません。 ・MariaDBではすべてのバグや開発計画が公開されています。 ・MariaDBは真のオープンソース精神で、コミュニティにより開発が行われています。 |
MySQLとの互換性
MySQLとMariaDBのバージョンの互換性は以下のとおりとなります。
MySQL バージョン | MariaDB バージョン |
---|---|
5.1 | 5.1、5.2、5.3 |
5.5 | 5.5、10.0 |
5.6 | 10.0、10.1、10.2、10.3、10.4 |
5.7 | 10.2、10.3、10.4 |
8.0 | 10.4、10.5、10.6、10.7、10.8 |
互換性があるという意味は、以下のとおりです。
- データやテーブル定義ファイルにバイナリ互換性がある
- 全てのクライアントAPIや、プロトコルや構造が、同一
- 全てのファイル名、バイナリ、パス、ポート、ソケットなどは同じ
- 全てのMySQLコネクタ(PHP、Perl、Python、Java、.NET、MyODBC、Ruby、MySQL Cコネクタなど)は、MariaDBでも変更なく動作する
- mysql-client パッケージは、MariaDBサーバでも動作する
- 共有クライアントライブラリはMySQLのクライアントライブラリとバイナリ互換がある
上記に記載したとおり、基本的には互換性が保障されていますが、いくつかの細かい点で非互換な部分が存在します。MariaDBとMySQLの各バージョンの互換性に関しては、以下のページを参照してください。
https://mariadb.com/kb/en/mariadb/mariadb-vs-mysql-compatibility/
MariaDBの公式サイト
MariaDBのダウンロードサイト
https://downloads.mariadb.org/
MariaDBのサポート
NRIではお客様のご要望に応じて様々な支援ができるサービスをご用意しました。
詳細は下記ページをご確認ください。