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

MySQLで特定のテーブルに使用されているストレージエンジンを確認する方法

MySQLでは、information_schema データベースの TABLES テーブルを参照することで、任意のテーブルに使用されているストレージエンジンを簡単に確認できます。ここでは、具体的なSQL文と実行結果の見方を解説します。

ストレージエンジンを確認するSQL文

以下のSQL文を実行すると、データベース「tutorial」内の「Student」テーブルに使用されているストレージエンジンを取得できます。

mysql> SELECT ENGINE FROM information_schema.TABLES
    -> WHERE TABLE_SCHEMA = 'tutorial'
    -> AND TABLE_NAME = 'Student';
+--------+
| ENGINE |
+--------+
| MyISAM |
+--------+
1 row in set (0.13 sec)

実行結果の見方

この例では、「Student」テーブルに MyISAM ストレージエンジンが使用されていることがわかります。結果セットの ENGINE 列に表示される値が、そのテーブルで実際に使われているストレージエンジンです。

  • TABLE_SCHEMA: 対象となるデータベース名を指定します。
  • TABLE_NAME: 確認したいテーブル名を指定します。
  • ENGINE: 使用されているストレージエンジンの名前が返されます(例:InnoDB、MyISAM など)。

補足:SHOW TABLE STATUS を使う方法

information_schema を直接参照する代わりに、SHOW TABLE STATUS ステートメントを使っても同じ情報を確認できます。

mysql> SHOW TABLE STATUS FROM tutorial WHERE Name = 'Student'\G

このコマンドでは、Engine 列のほかに、行数・平均行長・作成日時などのテーブルに関する詳細情報も同時に取得できます。単純にエンジンだけ知りたい場合は information_schema へのクエリが手軽で、テーブル全体の状態を把握したい場合は SHOW TABLE STATUS が便利です。用途に応じて使い分けるとよいでしょう。

  1. MySQLのテーブル名に「user」は使える?予約語エラーの原因と回避方法を解説

    MySQLで「user」というテーブル名は使用できる?結論から言うと、「user」はMySQLの予約語(リザーブドワード)であるため、そのままテーブル名として使用することはできません。CREATE TABLE文などで「user」を使おうとすると、構文エラーが発生します。この問題を回避するには、主に以下の2つの方法があります。テーブル名を「users」など別の名前に変更するバッククォート(`)で「user」を囲んで使用するバッククォートを使った例どうしても「user」という名前を使いたい場合は、次のようにバッククォートで囲みます。mysql> create table `user` ( .

  2. MySQLテーブルのストレージエンジンを変更する方法

    MySQLでは、ALTER TABLE文を使うことで、既存テーブルのストレージエンジンを簡単に変更できます。例えば、MyISAMで作成したテーブルをInnoDBに切り替えたい場合などに役立ちます。 基本構文 alter table yourTableName ENGINE=InnoDB; yourTableName の部分に対象となるテーブル名を指定し、ENGINE= の後ろに設定したいストレージエンジン名を記述します。 サンプルテーブルの作成 まず、MyISAMエンジンを使用したテーブルを作成してみましょう。 mysql> create table DemoTable  &n