Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 26.8Mb
PDF (A4) - 26.9Mb
HTML Download (TGZ) - 7.1Mb
HTML Download (Zip) - 7.2Mb


MySQL 5.6 リファレンスマニュアル  /  代替ストレージエンジン  /  ストレージエンジンの設定

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_SUBSTITUTION SQL モードを有効にします。目的のエンジンが使用できない場合、この設定によって、警告の代わりにエラーが起こり、テーブルが作成されたり変更されたりしません。セクション5.1.7「サーバー SQL モード」を参照してください。

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


User Comments
User comments in this section are, as the name implies, provided by MySQL users. The MySQL documentation team is not responsible for, nor do they endorse, any of the information provided here.
Sign Up Login You must be logged in to post a comment.