ストレージエンジンの指定方法
テーブルの作成時 CREATE TABLE 文でに明示的にストレージエンジンを指定できます。
CREATE TABLE t (i INT) ENGINE = InnoDB;
指定がない場合は、MySQLサーバはデフォルトのストレージエンジンを利用します。何も設定していない場合はMySQL 5.5以上ではInnoDB(MySQL 5.1以下ではMyISAM)となります。MySQLサーバはデフォルトを起動オプション`--default-storage-engine`で設定可能です。
現在のデフォルトのストレージエンジンはサーバ環境変数の @@storage_engine で確認します。
mysql> SELECT @@storage_engine; +------------------+ | @@storage_engine | +------------------+ | InnoDB | +------------------+ 1 row in set (0.00 sec)
ストレージエンジンの変更方法
作成済みのテーブルのストレージエンジンは ALTER TABLE 文で変更可能です。
ALTER TABLE t ENGINE = MEMORY;
非常にシンプルな構文でストレージエンジンの変更が可能ですが、内部的には同じテーブル定義で新しいストレージエンジンの空のテーブルを作成し、元のテーブルデータをロードしますので、データサイズが大きい場合には処理時間に注意が必要です。
ストレージエンジンの確認方法
作成済みのテーブルのストレージエンジンの確認は以下のいずれかの方法で可能です。
SHOW CREATE TABLE City\G
または
SHOW TABLE STATUS LIKE 'CountryLanguage'\G
また、メタデータを管理するスキーマ INFORMATION_SCHEMA にもストレージエンジンを含むテーブルの情報が管理されています。
SELECT TABLE_NAME, ENGINE FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'City' AND TABLE_SCHEMA = 'world'\G