MySQL Server では、ストレージエンジンに数多くの選択肢があります。NDBCLUSTER
と InnoDB
は、どちらもトランザクション対応の MySQL ストレージエンジンとして機能するため、MySQL Server のユーザーが MySQL Cluster に興味を持つこともあります。NDB
は、MySQL 5.6 のデフォルトの InnoDB
ストレージエンジンの代替候補またはアップグレード候補とみなされています。NDB
と InnoDB
には共通する特徴もありますが、アーキテクチャーや実装が異なるため、既存の MySQL Server アプリケーションや使用シナリオの中には MySQL Cluster に適合するものもありますが、すべてが適合するわけではありません。
このセクションでは、MySQL Cluster NDB 7.3 で使用されている NDB
ストレージエンジンの特徴を、MySQL 5.6 で使用されている InnoDB
と比較して説明します。次のいくつかのセクションでは、技術的な比較を示します。多くの場合、MySQL Cluster をいつどこで使用するかは、すべての要因を考慮に入れながらケースバイケースで決定する必要があります。このドキュメントでは、考えられるあらゆる使用シナリオの詳細を示すことはしませんが、一般的なタイプのアプリケーションが InnoDB
バックエンドに比べて NDB
にどの程度適合するかについて、ごく一般的なガイダンスを示します。
MySQL Cluster NDB 7.3 では MySQL 5.6 をベースとする mysqld が使用されますが、これには InnoDB
1.1 のサポートも含まれます。MySQL Cluster で InnoDB
テーブルを使用することは可能ですが、このようなテーブルはクラスタ化されません。MySQL Server 5.6 で MySQL Cluster NDB 7.3 配布のプログラムやライブラリを使用すること (またはその逆) もできません。
一般的なビジネスアプリケーションの中には MySQL Cluster と MySQL Server (ほとんどの場合、InnoDB
ストレージエンジンを使用) のどちらかで実行可能なタイプがあることも事実ですが、アーキテクチャーと実装には重要な違いがあります。これらの違いのサマリーについては、セクション18.1.5.1「NDB および InnoDB ストレージエンジンの違い」を参照してください。これらの違いのため、一部の使用シナリオは明らかにどちらか一方のエンジンに適しています。セクション18.1.5.2「NDB と InnoDB のワークロード」を参照してください。これは、NDB
または InnoDB
とともに使用するのが適切なアプリケーションのタイプにも影響を与えます。それぞれが一般的なタイプのデータベースアプリケーションでの使用にどの程度適合するかの比較については、セクション18.1.5.3「NDB および InnoDB の機能使用のサマリー」を参照してください。
NDB
および MEMORY
ストレージエンジンの相対的な特徴については、MEMORY または MySQL Cluster を使用する場合を参照してください。
MySQL ストレージエンジンに関する追加情報は、第15章「代替ストレージエンジン」を参照してください。