90

MySQLでは、特定のデータベースにストレージエンジンを指定する方法はなく、単一のテーブルにのみ指定できます。ただし、次の1つのセッションで使用するストレージエンジンを指定できます。

SET storage_engine=InnoDB;

したがって、テーブルごとに指定する必要はありません。

実際にすべてのテーブルがInnoDBを使用しているかどうかを確認するにはどうすればよいですか?

4

3 に答える 3

144

SHOW CREATE TABLE を使用する場合は、クエリからエンジンを解析する必要があります。

開発者はいつでもスキーマを変更する権利を留保しているため、INFORMATION_SCHEMA データベースから選択することはお勧めできません (可能性は低いですが)。

使用する正しいクエリはSHOW TABLE STATUSです。データベース内のすべてのテーブルに関する情報を取得できます。

SHOW TABLE STATUS FROM `database`;

または特定のテーブルの場合:

SHOW TABLE STATUS FROM `database` LIKE 'tablename';

返される列の 1 つはエンジンです。

于 2010-12-23T04:08:34.380 に答える
18
SELECT * FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'db name' AND ENGINE != 'InnoDB'
于 2010-12-23T02:48:23.563 に答える
3

show create table <table>トリックを行う必要があります。

于 2010-12-23T02:50:22.847 に答える