MySQLのシステム変数table_typeが機能しない理由とdefault_storage_engineへの移行方法
table_typeが機能しない理由
MySQLのシステム変数「table_type」は、MySQL 5.5.3以降で非推奨(deprecated)となっているため、現在では機能しません。代わりに「default_storage_engine」を使用してください。
構文は以下の通りです。
SET default_storage_engine = 使用したいストレージエンジン名;
ストレージエンジン名には、InnoDBやMyISAMなどを指定できます。ここでは、実際にエンジンタイプをMyISAMに設定してみましょう。
mysql> SET default_storage_engine=MyISAM;
Query OK, 0 rows affected (0.00 sec)
テーブルを作成して動作を確認する
それでは、新しいテーブルを作成してみます。
mysql> create table DemoTable
(
Id int NOT NULL AUTO_INCREMENT PRIMARY KEY
);
Query OK, 0 rows affected (0.40 sec)
次に、作成したテーブルのエンジンタイプを確認します。
mysql> SHOW TABLE STATUS WHERE Name = 'DemoTable';
このクエリを実行すると、以下のような出力が得られます。
+--------------+--------+---------+------------+------+----------------+-------------+------------------+--------------+-----------+----------------+---------------------+---------------------+------------+-----------------+----------+----------------+---------+
| Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time | Update_time | Check_time | Collation | Checksum | Create_options | Comment |
+--------------+--------+---------+------------+------+----------------+-------------+------------------+--------------+-----------+----------------+---------------------+---------------------+------------+-----------------+----------+----------------+---------+
| DemoTable | MyISAM | 10 | Fixed | 0 | 0 | 0 | 1970324836974591 | 1024 | 0 | 1 | 2019-05-01 22:15:03 | 2019-05-01 22:15:03 | NULL | utf8_unicode_ci | NULL | | |
+--------------+--------+---------+------------+------+----------------+-------------+------------------+--------------+-----------+----------------+---------------------+---------------------+------------+-----------------+----------+----------------+---------+
1 row in set (0.34 sec)
上記の出力結果を見ると、Engine列に「MyISAM」と表示されており、デフォルトのストレージエンジンが正しく変更されていることが確認できます。
注意点
補足:MySQL 8.0.12では、デフォルトのストレージエンジンはInnoDBです。上記の「SET default_storage_engine」による変更は、現在のセッションに対してのみ有効であり、セッションを終了すると元の設定に戻る点に注意してください。恒久的に変更したい場合は、設定ファイル(my.cnf / my.ini)で指定する方法も検討しましょう。
-
PHP変数「11:00 AM」をMySQLの時間形式に変換する方法
PHPの「11:00 AM」をMySQLの時間形式に変換する方法 MySQLのTIME型やDATETIME型は、時刻を24時間表記の「HH:MM:SS」形式で管理します。そのため、「11:00 AM」のようにAM/PMを含む文字列をデータベースに保存する場合は、事前に形式を変換しておく必要があります。本記事では、PHP標準のDateTimeクラスを使った変換方法を、サンプルコードと実行結果付きで解説します。 変換の基本の流れ DateTime::createFromFormat() … 入力文字列をDateTimeオブジェクトとして解析する format() … 解析結果を「H:i:s」(2
-
MySQLではInnoDBはデフォルトで有効になっている?ストレージエンジンの確認方法を解説
MySQLにおけるInnoDBのデフォルト設定 はい、MySQLではInnoDBはデフォルトで有効になっています。特にMySQL 5.5以降ではInnoDBが標準のストレージエンジンとして採用されているため、CREATE文で明示的に指定しなくても自動的にInnoDBが使用されます。 ここでは、MySQL 8.0の環境を使って実際に確認していきましょう。まずは現在使用中のバージョンをチェックします。 mysql> select version(); +-----------+ | version() | +-----------+ | 8.0.12 | +-----------+ 1