MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

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」オプションで指定する方法もあります。

  1. MySQLでInnoDBをインストールまたは有効化する方法

    MySQLでInnoDBストレージエンジンを有効にするには、設定ファイルmy.ini(Linux環境の場合はmy.cnf)を編集する必要があります。MySQL 8以降ではInnoDBがデフォルトなお、MySQL 8.0以降では、デフォルトのストレージエンジンとしてInnoDBが標準で採用されているため、通常は特別な設定を行わなくてもInnoDBを使用できます。現在の設定はmy.iniファイルで確認しましょう。デフォルトストレージエンジンを明示的に指定したい場合は、設定ファイルに以下のように記述します。[mysqld]default-storage-engine=InnoDBまた、サーバー側で現

  2. 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