MariaDB 10.0は、MariaDB5.5をベースに、MySQL5.6で追加になった機能をバックポートし、さらに、全く新しいMariaDB独自の様々な機能が実装されました。
これまでMariaDBは、MySQLのバージョン番号と呼応する形でリリースされていましたが、今バージョンからは、MySQLとの互換性は維持しながらも新たな独自機能が多く実装されたことから、独立した番号でリリースされるようになりました。以下に、MariaDB10.0で追加された主な機能を紹介します。
MariaDBのレプリケーションは、3つのステップに大別されます。
上記ステップ3について、これまではSQLスレッドにて同時に処理できるイベントは1つのみでしたが、MariaDB10より、複数のレプリケーションworkerスレッドによって並列に処理できるようになりました。これにより、レプリケーション性能の向上が期待されます。
イベントグループをマスターからスレーブへ複製する際、各トランザクションへIDが割り当てられます。このIDは、グローバルなユニークIDであるため、複数の異なるサーバー上にある同一binlogイベントを、容易に特定することが可能となります。これにより、接続先のスレーブサーバーを変更したり、複製元のマスターサーバーを変更したり、といった作業が効率化されます。また、スレーブの状態もクラッシュセーフな方法で記録されるようになります。
※MariaDBとMySQLでは、GTIDの実装が異なるため互換性はありません。
1つのスレーブが、複数のマスターを持つことが可能になりました。1スレーブ内で、複数マスターからのデータを同時レプリケーションすることができます。
各マスターは、固有のインスタンスによってスレーブサーバー内で処理されます。それぞれのインスタンスは、異なるI/Oスレッドと、SQLスレッド、および関連設定から構成されます。CHANGE MASTERを使って、インスタンスを指定します。
マルチソースレプリケーションを活用することで、分散したデータの包括的な分析やバックアップに役立ちます。
Cassandra、CONNECT、FederatedX、Spider、TokuDBが、新たに追加されました。
これまで、クエリオプティマイザ用の統計情報作成は、ストレージエンジンに依存しており、ストレージエンジンインターフェースから作成するため対象データに制約があったりと、自由度に制限がありましたが、エンジン非依存とすることでより多くのデータを収集することが可能となりました。
EXISTSサブクエリをINサブクエリへ変換することが可能となりました。明示的な相関EXISTSを、非相関INへ書き換えることで、Materializationを使用することができます。
SHOW EXPLAINコマンドが追加され、指定したスレッドで動いているクエリの実行計画を参照することが可能となりました。
スロークエリログからのEXPLAIN出力が可能となりました。
スレッド毎のメモリ使用状況を確認できるようになりました。
SHOW PUGINS SONAMEを使って、"plugin_dir"ディレクトリ内のすべてのプラグイン(未インストールも含む)に関する情報を参照することが可能になりました。
SHUTDOWNを使って、サーバーをシャットダウンすることが可能となりました。イベントを作成して、特定の時間にサーバーをシャトダウンするようスケジュールが可能です。
従来のスレッドIDに加えて、クエリIDでもクエリを終了することが可能になりました。
非ユニークキーのソートに加え、ユニークキーでもALTER TABLEを高速化できるようになりました。
InnoDBおよびXtraDBにおいても、非同期に行えるようになりました。
InnoDBおよびXtraDBにて、ダブルバイトバッファを使用しないでアトミックな書き込みができるようになりました。
シングルテーブルに対してDELETEを行う際、リザルトセットを返すことが可能になりました。
CREATE TABLEと同様に、ALTER TABLEでも"IF [NOT] EXISTS"節が使用できるようになりました。
ダイナミックカラムとは、NoSQLのように、テーブルの各行に複数の異なるカラムを持てる機能で、MariaDB5.3にて追加されました。格納する項目の属性数が多い場合や、予め分かっていない場合に、BLOB型のダイナミックカラムに保存しておくことで、後から変更が可能です。
MariaDB10.0では、主に以下について強化されました。
CREATE ROLEやDROP ROLEを使って、役割をコントロールできるようになりました。これにより、より細やかな権限管理を効率的に行うことが可能です。
MySQL5.6で追加された機能についての詳細は、「MySQL 5.6新機能」ページをご参照ください。
お問い合わせはお気軽にどうぞ
お問合せ・資料請求 ▶︎