MySQL 5.1 リファレンスマニュアル :: 12 SQL ステートメント構文 :: 12.1 データ定義ステートメント :: 12.1.10 CREATE TABLESPACE 構文
« 12.1.9 CREATE LOGFILE GROUP 構文

12.1.11 CREATE SERVER 構文 »
Section Navigation      [Toggle]
  • 12.1 データ定義ステートメント
  • 12.1.1 ALTER DATABASE 構文
  • 12.1.2 ALTER TABLE 構文
  • 12.1.3 ALTER LOGFILE GROUP 構文
  • 12.1.4 ALTER TABLESPACE 構文
  • 12.1.5 ALTER SERVER 構文
  • 12.1.6 CREATE DATABASE 構文
  • 12.1.7 CREATE INDEX 構文
  • 12.1.8 CREATE TABLE 構文
  • 12.1.9 CREATE LOGFILE GROUP 構文
  • 12.1.10 CREATE TABLESPACE 構文
  • 12.1.11 CREATE SERVER 構文
  • 12.1.12 DROP DATABASE 構文
  • 12.1.13 DROP INDEX 構文
  • 12.1.14 DROP TABLE 構文
  • 12.1.15 DROP LOGFILE GROUP 構文
  • 12.1.16 DROP TABLESPACE 構文
  • 12.1.17 DROP SERVER 構文
  • 12.1.18 RENAME DATABASE 構文
  • 12.1.19 RENAME TABLE 構文

12.1.10. CREATE TABLESPACE 構文

CREATE TABLESPACE tablespace
    ADD DATAFILE 'file'
    USE LOGFILE GROUP logfile_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 ディスク データ ストレージ」 を参照してください。

Copyright © 1997, 2010, Oracle and/or its affiliates. All rights reserved. Legal Notices
Top / Previous / Next / Up / Table of Contents
© 2010, Oracle Corporation and/or its affiliates