CREATE TABLESPACEtablespace
ADD DATAFILE 'file
' USE LOGFILE GROUPlogfile_group
[EXTENT_SIZE [=]extent_size
] INITIAL_SIZE [=]initial_size
ENGINE [=]engine
このステートメントは、テーブルに格納スペースを提供しながら1つ、または複数のデータ
ファイルを含む事ができるテーブルスペースを作成する為に利用されます。1つのデータ
ファイルはこのステートメントを利用してテーブルスペースに作成、または追加されます。ALTER
TABLESPACE
ステートメントを利用してテーブルスペースにデータ
ファイルを追加する事ができます。(項12.1.4. 「ALTER TABLESPACE
構文」
を参照してください。)
1つ、または複数の UNDO
ログ
ファイルのログ ファイル グループは USE
LOGFILE GROUP
条項を利用して作成する為にテーブルスペースに割り当てる必要があります。logfile_group
は CREATE LOGFILE GROUP
で作成した既存在ログ ファイル
グループでなければいけません。(項12.1.9. 「CREATE LOGFILE GROUP
構文」
を参照してください。)複数のテーブルスペースは
UNDO
ロギングに同じログ ファイル
グループを利用するでしょう。
EXTENT_SIZE
は、テーブル
スペースに属する全てのファイルに利用される範囲で、サイズをバイトで設定します。デフォルト値は4バイトです。
extent はディスク
スペース割り当てのユニットです。1つの範囲は、別の範囲が利用されるまで、可能な限りのできるだけ多くのデータで満たされます。INFORMATION_SCHEMA.FILES
テーブルをクエリする事によって、与えられたファイルでいくつの範囲がフリーであるかを確認する事ができるので、そのファイルの中でどれくらいのフリー
スペースがあるのかの概算が導かれます。更なる情報や例に関しては、項21.21. 「INFORMATION_SCHEMA FILES
テーブル」
を参照してください。
INITIAL_SIZE
パラメータはデータ
ファイルの合計サイズをバイトで設定します。一度データ
ファイルが作成されると、そのサイズは変更できませんが、追加の
ALTER TABLESPACE ... ADD DATAFILE
を利用する事によりテーブルスペースにより多くのデータ
ファイルを追加する事ができます。詳しくは
項12.1.4. 「ALTER TABLESPACE
構文」
を参照してください。
EXTENT_SIZE
や
INITIAL_SIZE
を設定する時(片方、または両方)、my.cnf
で利用されている物と同様、大きさによって一文字の省略形を持つ数字に従う事もできます。通常これは
M
(メガ バイト) か G
(ギガ バイト)のどちらかの文字です。
ENGINE
パラメータが、このテーブルスペースが利用するストレージ
エンジンを決め、その名前はengine
となります。MySQL 5.1 では
engine
が NDB
か
NDBCLUSTER
の値の1つにならなければいけません。
CREATE TABLESPACE ... ADD DATAFILE
が
ENGINE = NDB
と共に利用された時、テーブルスペースと関連するデータ
ファイルがそれぞれのクラスタ データ
ノード上に作成されます。INFORMATION_SCHEMA.FILES
テーブルに問い合わせする事によってデータ
ファイルが作成され、それらの情報を得た事を証明する事ができます。例:
mysql>SELECT LOGFILE_GROUP_NAME, FILE_NAME, EXTRA
->FROM INFORMATION_SCHEMA.FILES
->WHERE TABLESPACE_NAME = 'newts' AND FILE_TYPE = 'DATAFILE';
+--------------------+-------------+----------------+ | LOGFILE_GROUP_NAME | FILE_NAME | EXTRA | +--------------------+-------------+----------------+ | lg_3 | newdata.dat | CLUSTER_NODE=3 | | lg_3 | newdata.dat | CLUSTER_NODE=4 | +--------------------+-------------+----------------+ 2 rows in set (0.01 sec)
(詳しくは 項21.21. 「INFORMATION_SCHEMA FILES
テーブル」
を参照してください。)
MySQL 5.1.6 では CREATE TABLESPACE
が追加されました。MySQL 5.1 では MySQL
クラスタのディスク データ
ストレージと一緒の時のみ利用する事ができます。詳しくは
項14.11. 「MySQL Cluster ディスク データ ストレージ」
を参照してください。