MySQLデータベースでデフォルトのストレージエンジンをMyISAMに設定する方法
MySQLでは、デフォルトのストレージエンジンを変更することで、新規に作成するテーブルのエンジンを指定できます。ここでは、デフォルトのストレージエンジンをMyISAMに設定する手順を解説します。
デフォルトストレージエンジンを設定する構文
デフォルトのストレージエンジンを設定するには、次の構文を使用します。
set @@default_storage_engine = '任意のエンジン名';
MyISAMをデフォルトに設定する
それでは、上記の構文を使ってデフォルトエンジンをMyISAMに設定してみましょう。クエリは以下のとおりです。
mysql> set @@default_storage_engine = 'MyISAM'; Query OK, 0 rows affected (0.05 sec)
設定内容の確認
SELECT文を使えば、現在のデフォルトエンジンを確認できます。
mysql> select @@default_storage_engine;
実行結果は次のとおりで、デフォルトエンジンがMyISAMに設定されていることがわかります。
+--------------------------+ | @@default_storage_engine | +--------------------------+ | MyISAM | +--------------------------+ 1 row in set (0.00 sec)
テーブルを作成してエンジンを確認する
次に、実際にテーブルを作成し、デフォルトでMyISAMが適用されるかを確認します。以下のクエリでテーブルを作成します。
mysql> create table Followers -> ( -> FollowerId int, -> FollowerName varchar(20) -> ); Query OK, 0 rows affected (0.32 sec)
SHOW TABLE STATUSコマンドで、作成したテーブルのストレージエンジンを確認しましょう。
mysql> SHOW TABLE STATUS WHERE Name = 'Followers'\G
実行結果
Name: followers Engine: MyISAM Version: 10 Row_format: Dynamic Rows: 0 Avg_row_length: 0 Data_length: 0 Max_data_length: 281474976710655 Index_length: 1024 Data_free: 0 Auto_increment: 1 Create_time: 2019-02-12 00:42:27 Update_time: 2019-02-12 00:42:28 Check_time: NULL Collation: utf8_general_ci Checksum: NULL Create_options: Comment: 1 row in set (0.00 sec)
出力結果の「Engine: MyISAM」から、テーブルがMyISAMエンジンで作成されたことが確認できます。
設定はセッション限りである点に注意
MySQL 8.0.12では、デフォルトのストレージエンジンはInnoDBです。上記の方法で変更した設定は、あくまで現在のセッションにのみ有効です。MySQLを再起動すると、ストレージエンジンはデフォルトのInnoDBに戻ります。実際に再起動して確認してみましょう。
mysql> restart; Query OK, 0 rows affected (0.20 sec)
再起動後、再度デフォルトエンジンを確認すると、InnoDBに戻っていることがわかります。
mysql> select @@default_storage_engine; No connection. Trying to reconnect... Connection id: 8 Current database: sample +--------------------------+ | @@default_storage_engine | +--------------------------+ | InnoDB | +--------------------------+ 1 row in set (0.00 sec)
まとめ
「set @@default_storage_engine」を使えば、セッション単位でデフォルトのストレージエンジンをMyISAMに変更できます。ただし、この設定は一時的なもので、MySQLの再起動後はInnoDBに戻る点に注意してください。恒久的に変更したい場合は、設定ファイル(my.cnf / my.ini)の「default-storage-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また、サーバー側で現
-
MySQLでカラムのデフォルト値をNULLに設定する方法
MySQLでは、DEFAULT NULLを指定することで、カラムのデフォルト値をNULLに設定できます。本記事では、実際にテーブルを作成し、デフォルト値NULLがどのように機能するかを具体的な例とともに解説します。デフォルト値がNULLのテーブルを作成するまず、DEFAULT NULLを指定したテーブルを作成します。mysql> create table DemoTable1440 -> ( -> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> StudentName varchar(2