MySQL Cluster の NDB
ストレージエンジンは、分散型のシェアードナッシングアーキテクチャーを使用して実装されているため、InnoDB
とは多くの点で動作が異なります。NDB
の操作に慣れていないユーザーにとっては、NDB の持つ分散型の性質によって、トランザクション、外部キー、テーブルの制限、およびその他の特性に関して予期しない動作が発生する可能性があります。次の表にそれらを示します。
機能 |
|
MySQL Cluster |
---|---|---|
MySQL Server のバージョン |
5.6 |
5.6 |
|
|
|
MySQL Cluster のバージョン |
N/A |
|
ストレージの制限 |
64T バイト |
3T バイト (それぞれ 64G バイトの RAM を備えた 48 個のデータノードを基にした現実的な上限。ディスクベースのデータや BLOB によって増える可能性があります) |
外部キー |
はい |
MySQL Cluster NDB 7.3 より前のバージョン: いいえ。( MySQL Cluster NDB 7.3 では利用可能です。 |
トランザクション |
すべての標準タイプ |
|
MVCC |
はい |
いいえ |
データ圧縮 |
はい |
いいえ (MySQL Cluster のチェックポイントおよびバックアップファイルは圧縮できます) |
大きな行のサポート (> 14K) |
|
(これらの型を使用して非常に大量のデータを格納すると、MySQL Cluster のパフォーマンスが低下する可能性があります) |
レプリケーションのサポート |
MySQL レプリケーションを使用した非同期および準同期レプリケーション |
MySQL Cluster 内での自動的な同期レプリケーション。 MySQL レプリケーションを使用した MySQL Cluster 間の非同期レプリケーション |
読み取り操作のスケールアウト |
はい (MySQL レプリケーション) |
はい (MySQL Cluster 内の自動パーティション化、MySQL レプリケーション) |
書き込み操作のスケールアウト |
アプリケーションレベルのパーティション化 (シャーディング) が必要です |
はい (MySQL Cluster 内の自動パーティション化がアプリケーションに対して透過的に行われます) |
高可用性 (HA) |
追加のソフトウェアが必要です |
はい (99.999% の稼働時間を実現するように設計されています) |
ノードの障害リカバリとフェイルオーバー |
追加のソフトウェアが必要です |
自動 (MySQL Cluster アーキテクチャーの重要な要素) |
ノードの障害リカバリにかかる時間 |
30 秒以上 |
通常は 1 秒未満 |
リアルタイムのパフォーマンス |
いいえ |
はい |
インメモリーテーブル |
いいえ |
はい (必要に応じて一部のデータをディスクに格納できます。インメモリーとディスクの両方のデータストレージが永続的です) |
ストレージエンジンへの NoSQL アクセス |
ネイティブの memcached インタフェースが開発中です (MySQL Dev Zone の記事「MySQL Cluster 7.2 (DMR2): NoSQL, Key/Value, Memcached」を参照してください) |
はい Memcached、Node.js/JavaScript、Java、JPA、C++、HTTP/REST を含む複数の API |
同時および並列書き込み |
サポートされません |
同時書き込みのために最適化された最大 48 個のライター |
競合検出および解決 (複数のレプリケーションマスター) |
いいえ |
はい |
ハッシュインデックス |
いいえ |
はい |
オンラインのノード追加 |
MySQL レプリケーションを使った読み取り専用レプリカ |
はい (すべてのノードタイプ) |
オンラインのアップグレード |
いいえ |
はい |
オンラインのスキーマ変更 |
はい (MySQL 5.6 の一部として)。 |
はい。 |