MySQLプラガブルストレージエンジンは、特別なアプリケーションニーズをターゲットとする特徴集合を有効にし、実行するだけでなく、実際のデータ入出力操作に責任を持つMySQLデータベースサーバの中のコンポネントです。特殊なストレージエンジンを利用する事の最大の利点は、特定のアプリケーションに必要な特徴だけが供給されるという事です。その結果、最終的にデータベースはより効果的で高性能になり、システムオーバーヘッドが少なくなります。業界標準ベンチマークの独自仕様モノリシック構造に適応し、さらに先を進んでいる事が、MySQLが常に高性能として知られている理由の1つです。
技術的観点から見て、ストレージエンジンの中にある固有サポート構造基盤コンポネントにはどのような物があるでしょう? 重要な特徴の区別には次のような物があります。
並行処理 — いくつかのアプリケーションは他の物と比べて、より粒度の細かいロックを必要とします。 (行レベルロックのような物) 適切なロック方法を選択する事によりオーバーヘッドを減らす事ができ、その為全体的な性能も向上します。この分野はまた、マルチバージョン並行処理制御や「スナップショット」 読み込みのような機能もサポートします。
トランザクションサポート — 全てのアプリケーションがトランザクションを必要とするわけではありませんが、必要とするアプリケーションに対しては、ACIDコンプライアンスのような明確な条件があります。
参照整合性 — サーバーを持つ事によって、DDLに定義された外部キーを通してリレーショナルデータベース参照整合性が強調されます。
物理記憶 — これは、ディスク装置にデータを記憶する為に利用されるフォーマットだけでなく、 テーブルとインデックス全体のページサイズを含んでいます。
インデックスサポート — 異なるアプリケーションシナリオは異なるインデックスストラテジーの恩恵を受ける傾向があります。通常各ストレージエンジンは専用のインデックス方法を持ちますが、いくつかの方法は(Bツリーインデックス等)ほとんど全てのエンジンに共通しています。
メモリキャッシュ — 異なるアプリケーションは、いくつかのメモリキャッシュストラテジに対して他の物より反応がよいです。その為、いくつかのメモリキャッシュが全てのストレージエンジン(ユーザ接続やMySQLの高速クエリキャッシュに利用される物など)に共通であるとしても、他の物は特定のストレージエンジンが稼動する時だけ一意に定義されます。
パフォーマンスエイド — これはパネル操作の為の複数の入出力スレッド、スレッド並行処理、データベースチェックポイント、大量挿入操作等を含みます。
その他のターゲット特性 — これは、地球空間的操作へのサポート、特定データのマニピュレーション操作への安全保障制限、そしてその他の類似特性などを含みます。
プラガブルなストレージエンジン構造基盤コンポネントのセットはそれぞれ、特定のアプリケーションに選りすぐった利益をもたらすようにデザインされています。反対に、コンポネント特性を無効にすると、不必要なオーバーヘッドを削減する事ができます。特定のアプリケーションの要求事項を理解し、適切なMySQLストレージエンジンを選択する事が、システム全体の効率と性能に劇的な衝撃を与えるのは明らかです。