[+/-]
InnoDB
テーブルを作成する為には、CREATE
TABLE
ステートメント内で ENGINE =
InnoDB
オプションを指定してください:
CREATE TABLE customers (a INT, b CHAR (20), INDEX (a)) ENGINE=InnoDB;
このステートメントは、my.cnf
内で指定したデータ ファイルで構成されている
InnoDB
テーブルスペース内のカラム
a
上でテーブルとインデックスを作成します。さらに、MySQL
は MySQL データベース ディレクトリ下の
test
ディレクトリ内でファイル
customers.frm
を作成します。内部的に、InnoDB
はそれ自体のデータ
ディレクトリのテーブルにエントリを追加します。そのエントリはデータベース名を含んでいます。例えば、もし
test
が customers
テーブルが作成されたデータベースであれば、エントリは
'test/customers'
の為の物になります。これは、他のいくつかのデータベース内で、同名
customers
のテーブルを作成する事ができ、そしてそのテーブル名は
InnoDB
内で衝突しないという事を意味します。
InnoDB
テーブルに SHOW TABLE
STATUS
ステートメントを発行する事で、InnoDB
テーブルスペース内の空き領域の量をクエリする事ができます。SHOW
TABLE STATUS
のアウトプット内の
Comment
セクション内に現れるテーブルスペース内の空き領域の量。例:
SHOW TABLE STATUS FROM test LIKE 'customers'
SHOW
が InnoDB
テーブルの為に表示する統計は単なる概算であるという事に注意してください。それらは
SQL
最適化の中で利用されます。しかしテーブルやインデックスの、準備されていたバイトでのサイズは正確です。