MySQLでテーブル作成時にデフォルトのInnoDB以外のストレージエンジンを指定する方法
MySQLでテーブルを作成する際、デフォルトのストレージエンジンであるInnoDBを使わずに、別のストレージエンジンを明示的に指定することができます。指定方法は非常にシンプルで、CREATE TABLE文の末尾にENGINEキーワードを追加するだけです。
基本的な指定方法
以下は、テーブル作成時にストレージエンジンとして「MyISAM」を指定する例です。
mysql> CREATE TABLE Student(id INTEGER PRIMARY KEY, Name VARCHAR(15)) -> ENGINE = 'MyISAM'; Query OK, 0 rows affected (0.28 sec)
このように、ENGINEキーワードの後に希望するストレージエンジン名を記述することで、そのテーブルにのみ特定のストレージエンジンが適用されます。サーバー全体のデフォルト設定には影響しません。
利用可能なストレージエンジンの確認方法
自分のMySQLサーバーでどのストレージエンジンが利用可能かを確認したい場合は、次のコマンドを実行します。
mysql> SHOW ENGINES;
実行結果には、各エンジンがサポートされているか(SUPPORT列)や、トランザクション対応の有無などの情報が表示されます。
主なストレージエンジンの特徴
- InnoDB: MySQLのデフォルトエンジン。ACID準拠のトランザクション、行レベルロック、外部キー制約をサポートしており、信頼性の高いOLTP処理に適しています。
- MyISAM: かつてのデフォルトエンジン。トランザクションは使えませんが、読み取り中心のワークロードで高速に動作するのが特徴です。
- MEMORY: データをすべてメモリ上に保持するため非常に高速ですが、サーバー再起動でデータが失われるため、一時データ向けです。
- CSV: データをCSV形式のファイルとして保存するエンジンで、他ツールとのデータ交換に便利です。
まとめ
テーブルごとに最適なストレージエンジンを選択することで、パフォーマンスや機能面での要件に柔軟に対応できます。CREATE TABLE文にENGINEキーワードを付けるだけで簡単に指定できるので、用途に応じて使い分けましょう。
-
MySQLテーブルがMyISAMまたはInnoDBエンジンを使用しているか確認する方法
MySQLテーブルのストレージエンジンを確認するには? MySQLでテーブルがMyISAMまたはInnoDBのどちらのストレージエンジンを使用しているかを確認したい場合、SHOW TABLE STATUSコマンドを使うのが最も手軽な方法です。このコマンドを実行すると、エンジンの種類だけでなく、行数や作成日時、照合順序など、テーブルに関する詳細情報を一度に取得できます。 基本構文 SHOW TABLE STATUS FROM データベース名 LIKE テーブル名; 上記の構文では、指定したデータベース内の特定のテーブルに関する情報が表示されます。Engine列の値を確認することで、そのテーブル
-
MySQLでInnoDBをインストールまたは有効化する方法
MySQLでInnoDBストレージエンジンを有効にするには、設定ファイルmy.ini(Linux環境の場合はmy.cnf)を編集する必要があります。MySQL 8以降ではInnoDBがデフォルトなお、MySQL 8.0以降では、デフォルトのストレージエンジンとしてInnoDBが標準で採用されているため、通常は特別な設定を行わなくてもInnoDBを使用できます。現在の設定はmy.iniファイルで確認しましょう。デフォルトストレージエンジンを明示的に指定したい場合は、設定ファイルに以下のように記述します。[mysqld]default-storage-engine=InnoDBまた、サーバー側で現