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

MySQLでテーブルエンジンをInnoDBからMyISAMに変更する方法

MySQLでは、ALTER TABLE文を使うことで、テーブルのストレージエンジンを簡単に変更できます。この記事では、テーブルエンジンをInnoDBからMyISAMへ変更する具体的な手順を解説します。

1. サンプルテーブルを作成する

まず、変更用のサンプルテーブルを作成しましょう。

mysql> create table DemoTable1982
   (
   StudentId int,
   StudentName varchar(20),
   StudentAge int
   );
Query OK, 0 rows affected (0.00 sec)

2. 現在のテーブルエンジンを確認する

作成したテーブルのエンジンタイプを確認するには、SHOW CREATE TABLE文を使用します。

mysql> show create table DemoTable1982;

実行結果は以下のとおりです。ENGINE=InnoDB と表示されていることから、現在のエンジンがInnoDBであることがわかります。

+---------------+--------------------------------------------------------------------------------------------------------------------------------+
| Table         | Create Table                                                                                                       |
+---------------+--------------------------------------------------------------------------------------------------------------------------------+
| DemoTable1982 | CREATE TABLE `demotable1982` (`StudentId` int(11) DEFAULT NULL, `StudentName` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL, `StudentAge` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci |
+---------------+--------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

3. エンジンをInnoDBからMyISAMに変更する

テーブルエンジンをInnoDBからMyISAMに変更するには、以下のクエリを実行します。

mysql> alter table DemoTable1982 ENGINE='MyISAM';
Query OK, 0 rows affected (0.00 sec)
Records: 0  Duplicates: 0  Warnings: 0

4. 変更後のエンジンを確認する

再度SHOW CREATE TABLE文を実行して、エンジンが正しく変更されたか確認しましょう。

mysql> show create table DemoTable1982;

実行結果を見ると、ENGINE=MyISAM に変わっていることが確認できます。

+---------------+--------------------------------------------------------------------------------------------------------------------------------+
| Table         | Create Table                                                                                                        |
+---------------+--------------------------------------------------------------------------------------------------------------------------------+
| DemoTable1982 | CREATE TABLE `demotable1982` ( `StudentId` int(11) DEFAULT NULL, `StudentName` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL, `StudentAge` int(11) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci |
+---------------+--------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

補足:InnoDBとMyISAMの違い

エンジンを変更する際は、それぞれの特性を理解しておくことが重要です。

  • InnoDB:トランザクション処理や外部キー制約に対応しており、データの整合性を重視するアプリケーションに適しています。
  • MyISAM:トランザクションは使えませんが、読み取り処理が高速で、フルテキスト検索に対応しています。参照中心のテーブルに向いています。

なお、大きなテーブルに対してエンジンを変更すると時間がかかる場合があるため、本番環境で操作する際は事前にバックアップを取得することをおすすめします。

  1. MySQLテーブルがMyISAMまたはInnoDBエンジンを使用しているか確認する方法

    MySQLテーブルのストレージエンジンを確認するには? MySQLでテーブルがMyISAMまたはInnoDBのどちらのストレージエンジンを使用しているかを確認したい場合、SHOW TABLE STATUSコマンドを使うのが最も手軽な方法です。このコマンドを実行すると、エンジンの種類だけでなく、行数や作成日時、照合順序など、テーブルに関する詳細情報を一度に取得できます。 基本構文 SHOW TABLE STATUS FROM データベース名 LIKE テーブル名; 上記の構文では、指定したデータベース内の特定のテーブルに関する情報が表示されます。Engine列の値を確認することで、そのテーブル

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

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