このセクションでは、NDB Cluster で検出された制限のうち、標準 MySQL で検出された制限とは異なる制限または見つからない制限を一覧表示します。
メモリーの使用量とリカバリ.
ほかのストレージエンジンと同様、NDB
テーブルにデータを挿入したときに消費されたメモリーは、削除したときに自動的にリカバリされません。 代わりに、次のルールが適用されます。
-
NDB
テーブルに対してDELETE
ステートメントを実行すると、削除された行で以前使用されていたメモリーが同じテーブルでの挿入にかぎって再利用可能になります。 ただし、OPTIMIZE TABLE
を実行すると、このメモリーの一般的な再利用が可能になります。クラスタのローリング再起動が行われた場合も、削除された行で使用されていたメモリーが解放されます。 セクション23.5.5「NDB Cluster のローリング再起動の実行」を参照してください。
-
NDB
テーブルに対してDROP TABLE
またはTRUNCATE TABLE
操作を実行すると、このテーブルで使用されていたメモリーが解放され、任意のNDB
テーブルで (同じテーブルでも別のNDB
テーブルでも) 再利用可能になります。注記TRUNCATE TABLE
によってテーブルが削除され、再作成されることを思い出してください。 セクション13.1.37「TRUNCATE TABLE ステートメント」を参照してください。 -
クラスタの構成によって課される制限. 多くの構成可能なハード制限がありますが、クラスタ内の利用可能なメインメモリーによって制限が設定されます。 セクション23.3.3「NDB Cluster 構成ファイル」の構成パラメータの完全なリストを参照してください。 ほとんどの構成パラメータはオンラインでアップグレードできます。 これらのハード制限には次のようなものがあります。
-
データベースのメモリーサイズとインデックスのメモリーサイズ (それぞれ
DataMemory
とIndexMemory
)。DataMemory
は 32K バイトのページとして割り当てられます。 各DataMemory
ページは、使用されたときに特定のテーブルに割り当てられます。割り当てられたあとは、テーブルを削除した場合を除いてこのメモリーを解放できません。詳細は、セクション23.3.3.6「NDB Cluster データノードの定義」を参照してください。
-
1 つのトランザクションで実行できる操作の最大数は、構成パラメータ
MaxNoOfConcurrentOperations
およびMaxNoOfLocalOperations
を使用して設定されます。注記一括ロード、
TRUNCATE TABLE
、およびALTER TABLE
は、複数のトランザクションを実行することによって特別なケースとして扱われるため、この制限が適用されません。 テーブルとインデックスに関するさまざまな制限。 たとえば、クラスタ内の順序付けされたインデックスの最大数は
MaxNoOfOrderedIndexes
によって決定され、テーブルあたりの順序付けされたインデックスの最大数は 16 です。
-
-
ノードとデータオブジェクトの最大数. クラスタノードとメタデータオブジェクトの数には、次の制限が適用されます。
-
NDB 8.0.18 の時点では、データノードの最大数は 145 です。 (以前は 48 でした。)
データノードは 1 から 144 までの (これらを含む) 範囲のノード ID を持つ必要があります。 (NDB 8.0.17 以前のリリースでは、これは 1 から 48 でした。)
管理ノードおよび API ノードでは、1 から 255 の範囲のノード ID を使用できます。
NDB Cluster 内のノードの合計最大数は 255 です。 この数には、すべての SQL ノード (MySQL Server)、API ノード (MySQL Server 以外のクラスタにアクセスするアプリケーション)、データノード、および管理サーバーが含まれます。
NDB Cluster の現在のバージョンのメタデータオブジェクトの最大数は 20320 です。 この制限はハードコーディングされています。
詳細は、セクション23.1.7.11「前 NDB Cluster 8.0 で解決される NDB Cluster の問題」を参照してください。
-