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

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)で指定する方法も検討しましょう。

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

  2. MySQLではInnoDBはデフォルトで有効になっている?ストレージエンジンの確認方法を解説

    MySQLにおけるInnoDBのデフォルト設定 はい、MySQLではInnoDBはデフォルトで有効になっています。特にMySQL 5.5以降ではInnoDBが標準のストレージエンジンとして採用されているため、CREATE文で明示的に指定しなくても自動的にInnoDBが使用されます。 ここでは、MySQL 8.0の環境を使って実際に確認していきましょう。まずは現在使用中のバージョンをチェックします。 mysql> select version(); +-----------+ | version() | +-----------+ | 8.0.12 | +-----------+ 1