10bet网址
MySQL 5.6 リファレンスマニュアル
Download this Manual

15.1 ストレージエンジンの設定

新しいテーブルを作成するときに、ENGINEテーブルオプションをCREATE TABLEステートメントに加えることによって、どのストレージエンジンを利用するかを指定できます。

-- ENGINE=INNODB not needed unless you have set a different -- default storage engine. CREATE TABLE t1 (i INT) ENGINE = INNODB; -- Simple table definitions can be switched from one to another. CREATE TABLE t2 (i INT) ENGINE = CSV; CREATE TABLE t3 (i INT) ENGINE = MEMORY;

ENGINEオプションを省略した場合、デフォルトのストレージエンジンが使用されます。デフォルトのエンジンは MySQL 5.6 のInnoDBです。デフォルトのエンジンを指定するには、--default-storage-engineサーバースタートアップオプションを使用するか、my.cnf構成ファイルにあるdefault-storage-engineオプションを設定するかします。

現在のセッションにデフォルトのストレージエンジンを設定するには、default_storage_engine変数を設定します。

SET default_storage_engine=NDBCLUSTER;

MySQL 5.6.3 以降では、CREATE TEMPORARY TABLEで作成されたTEMPORARYテーブルのストレージエンジンは、スタートアップ時または実行時のいずれかにdefault_tmp_storage_engineを設定することで、永続的なテーブルのエンジンから個別に設定できます。MySQL 5.6.3 より前は、default_storage_engineで永続およびTEMPORARYの両方のテーブルのエンジンを設定します。

テーブルを別のストレージエンジンに変換するには、新しいエンジンを指定するALTER TABLEステートメントを使用します。

ALTER TABLE t ENGINE = InnoDB;

セクション13.1.17「CREATE TABLE 構文」およびセクション13.1.7「ALTER TABLE 構文」を参照してください。

コンパイルされていないストレージエンジン、またはコンパイルされているが無効化されたストレージエンジンを使用する場合、MySQL はその代わりに、デフォルトのストレージエンジンを使用してテーブルを作成します。たとえばレプリケーションのセットアップで、マスターサーバーは、最大限の安全性を得るためにInnoDBテーブルを使用し、スレーブサーバーは持続性と一貫性を犠牲にして速度を得るために、代替ストレージエンジンを使用する場合があります。

デフォルトでは、CREATE TABLEまたはALTER TABLEがデフォルトのストレージエンジンを使用できない場合は、常に警告が生成されます。目的のエンジンが使用できない場合に、混乱を起こす意図しない動作をしないようにするには、NO_ENGINE_SUBSTITUTIONSQL モードを有効にします。目的のエンジンが使用できない場合、この設定によって、警告の代わりにエラーが起こり、テーブルが作成されたり変更されたりしません。セクション5.1.7「サーバー SQL モード」を参照してください。

新しいテーブルの場合、MySQL はテーブルとカラムの定義を保持するために.frmファイルを必ず作成します。テーブルのインデックスとデータは、ストレージエンジンによっても異なりますが、1 つまたは複数の別のファイルに格納してもかまいません。サーバーがストレージエンジンレベルの上位に.frmファイルを作成します。個々のストレージエンジンは、それらが管理するテーブルに必要なファイルをさらに作成します。テーブル名に特殊文字が含まれている場合は、セクション9.2.3「識別子とファイル名のマッピング」で説明されているように、その文字のエンコードされたバージョンがテーブルファイルの名前に含まれます。