ALTER TABLESPACEtablespace
ADD DATAFILE 'file
' INITIAL_SIZE [=]size
ENGINE [=]engine
ALTER TABLESPACEtablespace
DROP DATAFILE 'file
' ENGINE [=]engine
このステートメントは新しいデータ ファイルを追加する時かテーブルスペースからデータ ファイルをドロップする時に利用する事ができます。
ADD DATAFILE
異形では、size
がバイトで計算され、INITIAL_SIZE
構文を利用して初期のサイズを指定する事が要求されます。my.cnf
で利用されている物と同様、大きさによって一文字の省略形を持つ整数値に従う事もできます。通常これは
M
(メガ バイト) か G
(ギガ バイト)のどちらかの文字です。
一度データ
ファイルが作成されると、そのサイズは変更できませんが、追加の
ALTER TABLESPACE ... ADD DATAFILE
ステートメントを利用する事によりテーブルスペースにより多くのデータ
ファイルを追加する事ができます。
DROP DATAFILE
を ALTER
TABLESPACE
と共に利用する事で、テーブルスペースから
'file
'
をドロップする事ができます。このファイルは
CREATE TABLESPACE
か ALTER
TABLESPACE
を利用してテーブルスペースに既に追加されていなければいけません。そうでなければエラーが発生します。
ALTER TABLESPACE ... ADD DATAFILE
と
ALTER TABLESPACE ... DROP DATAFILE
の2つは、テーブルスペースに利用されるストレージ
エンジンを指定する ENGINE
条項を必要とします。MySQL
5.1では、engine
に受け入れられる値は NDB
と
NDBCLUSTER
だけです。
ALTER TABLESPACE ... ADD DATAFILE
が
ENGINE = NDB
と共に利用された時、データ
ファイルがそれぞれのクラスタ データ
ノード上に作成されます。INFORMATION_SCHEMA.FILES
テーブルに問い合わせする事によってデータ
ファイルが作成され、それらの情報を得た事を証明する事ができます。例えば、次のクエリは
newts
名付けられたテーブルスペースに属する全てのデータ
ファイルを表していす。
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 | | lg_3 | newdata2.dat | CLUSTER_NODE=3 | | lg_3 | newdata2.dat | CLUSTER_NODE=4 | +--------------------+--------------+----------------+ 2 rows in set (0.03 sec)
詳しくはこちらをを参照してください。項21.21. 「INFORMATION_SCHEMA FILES
テーブル」
MySQL 5.1.6 では ALTER TABLESPACE
が追加されました。MySQL 5.1 では MySQL
クラスタの ディスク データ
ストレージと一緒の時のみ利用する事ができます。詳しくは
項14.11. 「MySQL Cluster ディスク データ ストレージ」
を参照してください。