MySQL 5.1.6 では、ディスクの NDB
      テーブルの非インデックスのカラムを、以前のバージョンの
      MySQL Cluster の RAM
      以外に保存できるようになりました。
    
クラスタ ディスク データの作業の一貫で、ノードのリカバリおよび再起動時に多量(テラ バイト)のデータの取扱い効率を上げるための多くの改善を加えています。これらの改善点の中には非常に大きなデータセットを持つノードの起動の同期する 「no-steal」 アルゴリズムが含まれています。詳細については MySQL Cluster の開発者 Mikael Ronström および Jonas Oreland による説明書 Recovery Principles of MySQL Cluster 5.1 を参照してください。
MYSQL 5.1.6 あるいはそれ以降で稼動する MySQL Cluster をすべてのノード (マネジメント および SQL ノードを含む) を設定したと仮定すると、ディスクでクラスタ テーブル作成の基本的なステップは以下のようになります。
          log file group
          を作成し、1つ以上の UNDO ログ
          ファイルをそれに割り当て (UNDO
          ログ ファイルは UNDOFILE
          とも言われます) ます。.
        
tablespace を作成し、1 つい上のデータ ファイルおよびログ ファイル グループをそれに割り当てます。
データのストレージにテーブルスペースを使用するあディスク データ テーブルを作成します。
これらの各タスクは以下の例に示すように SQL ステートメントで実行できます。
          lg_1 の名前のログ ファイル
          グループを CREATE LOGFILE GROUP
          を使用して作成します。このログ
          ファイルのグループは 2 つの
          UNDO ログ
          ファイルで構成され、それぞれの名前を
          undo_1.dat および
          undo_2.dat
          とし、それらの初期サイズはそれぞれ 16 MB
          および 12 MB です。(ログ ファイルをログ
          ファイル
          グループに追加する際はそれらの初期サイズを指定する必要があります。オプションで、ログ
          ファイル グループの UNDO
          バッファのサイズを指定するか、デフォルト値の
          8 MB
          のまま使用することもできます。この例では、UNDO
          バッファのサイズを 2 MB
          にしています。UNDO ログ
          ファイルと一緒にログ
          ファイルのグループを作成する必要があります。ここでは
          undo_1.dat を lg_1
          にこの CREATE LOGFILE GROUP
          ステートメントで追加します。
        
CREATE LOGFILE GROUP lg_1
    ADD UNDOFILE 'undo_1.dat'
    INITIAL_SIZE 16M
    UNDO_BUFFER_SIZE 2M
    ENGINE NDB;
          undo_2.dat をログ
          ファイルのグループに追加するには、以下の
          ALTER LOGFILE GROUP
          ステートメントを使用します。
        
ALTER LOGFILE GROUP lg_1
    ADD UNDOFILE 'undo_2.dat'
    INITIAL_SIZE 12M
    ENGINE NDB;
いくつかの項目に関する備考
              ここで使用されている.dat
              のファイル拡張は必要ありません。ここで使用しているのはログおよびデータ
              ファイルが分かり易いように使用しているだけです。
            
              すべての CREATE LOGFILE GROUP
              および ALTER LOGFILE GROUP
              ステートメントには ENGINE
              節を含める必要があります。MySQL 5.1
              では、この節に許可された値は
              NDB および
              NDBCLUSTER です。
            
重要MySQL 5.1.8 およびそれ以降では、所定の時間ではログ ファイル グループは 1 つだけです。
              UNDO ログ ファイルをログ
              ファイル グループに ADD UNDOFILE
              'を使用して追加するときに、filename'filename
              の名前のファイルがクラスタの各データ
              ノードの Data Directory の
              ndb_
              ディレクトリで作成されます。そこでは
              nodeid_fsnodeid はデータ
              ノードのノード ID です。
            
              UNDO_BUFFER_SIZE
              は利用できるシステム
              メモリの容量によって制限されます。
            
              CREATE LOGFILE GROUP
              ステートメントの詳細に関しては
              項12.1.9. 「CREATE LOGFILE GROUP 構文」
              を参照してください。.ALTER LOGFILE
              GROUP の詳細は、
              項12.1.3. 「ALTER LOGFILE GROUP 構文」
              を参照してください。
            
          ここでテーブルスペースを作成します。テーブルスペースは
          MySQL Cluster ディスク データ
          テーブルで使用されるそれらのデータを保存するファイルを含みます。テーブルスペースは特定のログ
          ファイルのグループに関連付けられています。新たにテーブルスペースを作成する際は、UNDO
          ロギングで使用されるログ
          ファイルのグループを指定する必要があります。データ
          ファイルも指定する必要があります。テーブルスペースを作成した後にさらにテーブルスペースを追加することもできます。データスペースからデータ
          ファイルを削除することもできます (データ
          ファイルの削除の例はこの項で後ほど提供します)。
        
          ts_1 の名前で lg_1
          でログ
          ファイルのグループとして使用されるテーブルスペースを作成するものとします。このテーブルスペースは
          2 つのデータ ファイル data_1.dat
          および data_2.dat
          を含むものとし、それぞれの初期のサイズをそれぞれ
          32 MB および 48 MB とします。これを 2 つの SQL
          ステートメントを使用して行います。CREATE
          TABLESPACE、ts_1 をデータ
          ファイル data_1.dat
          で作成し、ts_1 をログ ファイル
          グループ lg_1 に関連付けし、
          ALTER TABLESPACE は 2 番目のデータ
          ファイルを追加します。以下のこれらのステートメントを示します。
        
CREATE TABLESPACE ts_1
    ADD DATAFILE 'data_1.dat'
    USE LOGFILE GROUP lg_1
    INITIAL_SIZE 32M
    ENGINE NDB;
ALTER TABLESPACE ts_1
    ADD DATAFILE 'data_2.dat'
    INITIAL_SIZE 48M
    ENGINE NDB;
いくつかの項目に関する備考
              ここで UNDO ログ
              ファイルに使用されたファイル名の場合と同様、.dat
              ファイル拡張の特別な重要性はありません。分かり易くするためにのみ使用しています。
            
              すべての CREATE TABLESPACE
              および ALTER TABLESPACE
              ステートメントは ENGINE
              節を含む必要があり、テーブルスペースと同じストレージ
              エンジンを使用しているテーブルのみがテーブルスペースで作成されます。MySQL
              5.1 では、この節に許可された値は
              NDB および
              NDBCLUSTER だけです。
            
              CREATE TABLESPACE および
              ALTER TABLESPACE
              ステートメントに関する詳細は、
              項12.1.10. 「CREATE TABLESPACE 構文」 、および
              項12.1.4. 「ALTER TABLESPACE 構文」
              を参照してください。
            
          ここで非インデックスのカラムがテーブルスペース
          ts_1
          のディスクの保存されるテーブルを作成できます。
        
CREATE TABLE dt_1 (
    member_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
    last_name VARCHAR(50) NOT NULL,
    first_name VARCHAR(50) NOT NULL,
    dob DATE NOT NULL,
    joined DATE NOT NULL,
    INDEX(last_name, first_name)
    )
    TABLESPACE ts_1 STORAGE DISK
    ENGINE NDB;
          TABLESPACE ...STORAGE DISK 節が
          NDB Cluster ストレージ
          エンジンにテーブルスペース
          ts_1 をディスク データ
          ストレージに使用するよう指示します。
        
          以下のようにテーブル ts_1
          が以下のように作成されたら、他の MySQL
          テーブルでするように
          INSERT、SELECT、UPDATE、および
          DELETE
          ステートメントを実行できます。
        
          テーブル dt_1
          にはここで定義されたように、dob
          および joined
          カラムのみがディスクに保存できます。これは
          id
          にインデックスがあるからで、last_name、および
          first_name
          カラム、並びにこれらのカラムに所属するが
          RAM に保存されます。MySQL 5.1
          では、非インデックスカラムのみがディスクの保存されます。インデックスおよびインデックスの付いたカラムはメモリに保存されます。このインデックスと
          RAM の保存間の兼ね合いはディスク データ
          テーブルを設計する際に忘れてはならないものです。
        
重要MySQL 5.1 のディスク データ テーブルには、変数長カラムがある一定のスペースを使用します。各行では、そのカラムの一番大きな値を保存するのに必要なスペースに相当します。(これらの計算に関するヘルプに関しては、項10.5. 「データタイプが必要とする記憶容量」 を参照してください。)
          注:クラスタを
          --initial
          オプションで起動するとディスク データ
          ファイルは削除されません。クラスタを最初の再起動を実行するときに手動でそうする必要があります。
        
これらを使用しているログ ファイル グループ、テーブルスペース、およびディスク データ テーブルは特別な順序で作成する必要があります。これらのオブジェクトを削除する際も同様です。
ログ ファイル グループはテーブルスペースがそれを使用しいる場合は削除できません。
テーブルスペースはそれがデータ ファイルを含んでいる場合には削除できません。
テーブルスペースを使用しているテーブルが残っている限りテーブルスペースからデータ ファイルを削除することはできません。
MySQL 5.1.12 以降では、ファイルが作成されたもの以外の異なるテーブルスペースに関連して作成されたファイルは削除できなくなりました。(Bug#20053)
例えば、この項でこれまで作成してきたすべてのオブジェクトを削除するには、以下のステートメントを使用します。
mysql>DROP TABLE dt_1;mysql>ALTER TABLESPACE ts_1->DROP DATAFILE 'data_2.dat'->ENGINE NDB;mysql>ALTER TABLESPACE ts_1->DROP DATAFILE 'data_1.dat'->ENGINE NDB;mysql>DROP TABLESPACE ts_1->ENGINE NDB;mysql>DROP LOGFILE GROUP lg_1->ENGINE NDB;
      これらのステートメントは表示された順序で実行する必要があります。ALTER
      TABLESPACE ...DROP DATAFILE のこの 2
      つのステートメントはどちらの順序でも実行できる場合があります。
    
      INFOMATION_SCHEMA データベースで
      FILES
      テーブルにクエリしてディスク データ
      テーブルに使用されるデータ
      ファイルに関する情報を取得できます。undo ログ
      ファイルに関する情報を提供するために特別な
      「NULL 行」 が MySQL 5.1.14
      に追加されています。使用例に関する詳細は、
      項21.21. 「INFORMATION_SCHEMA FILES テーブル」 を参照してください。.
    
パラメータの設定により以下を含むディスク データ の振る舞いに影響を及ぼします。
          DiskPageBufferMemory
        
          これによりディスクのキャッシュ
          ページに使用されるスペースを決め、config.ini
          ファイルの [NDBD] あるいは
          [NDBD DEFAULT]
          セクションに設定されます。そのスペースはバイトで測定されます。各ページは
          32k です。このことはN
          が負の整数以外の場合、クラスタ デスク
          データ ストレージは常に
          N * 32k
          メモリを使用することを意味します。
        
          SharedGlobalMemory
        
          これはログ
          バッファに使用されるメモリ容量、ディスク
          オペレーション(ページ
          リクエストおよび待ちキューなど)、およびテーブルスペースのメタデータ、ログ
          ファイル グループ、UNDO
          ファイル、ならびにデータ
          ファイルを決めます。それはconfig.ini
          設定ファイルの [NDBD] あるいは
          [NDBD DEFAULT]
          セクションで設定され、バイトで測定されます。
        
      注:OPTIMIZE
      TABLE ステートメントはディスク データ
      テーブルには影響を及ぼしません。
    

