web-dev-qa-db-ja.com

MySQLデータベースのタイプを判別するにはどうすればよいですか。それがInnoDBであるかMyISAMであるか?

  • Mysqlデータベースのタイプを判別するにはどうすればよいですか:InnoDBかMyISAMか?
  • MyISAMをInnoDBまたはその逆に変換するにはどうすればよいですか?
25
Rachel

テーブルで使用されているストレージエンジンを確認するには、 show table status を使用できます。結果のEngineフィールドには、テーブルのデータベースエンジンが表示されます。または、engineフィールドを information_schema.tables から選択できます。

select engine 
from   information_schema.tables 
where  table_schema = 'schema_name'
   and table_name = 'table_name' 

alter table を使用して、ストレージエンジンを切り替えることができます。

alter table the_table engine = InnoDB;

もちろん、使用可能な任意のストレージエンジンを指定できます。

39
James McNellis

問題のデータベースを選択し、show table status;を実行します

15
mr-euro
SHOW TABLE STATUS FROM `database`;

myISAMであるかInnoDBであるかにかかわらず、すべてのテーブルのすべてをリストします。 1つのテーブルに関するデータのみを一覧表示する場合は、以下の構文を使用できます*:

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

テーブルエンジンを変更するには:

ALTER TABLE `table` ENGINE=InnoDB;

*注意:データベース名とテーブル名にはGrave ACCENT( `バックティック)を使用し、LIKEの後の比較文字列(テーブル名の一部)にはSINGLE QUOTE( ')を使用してください。

`!= '

4
tony gil

MyIsamをInnodbに変換することについて

http://dev.mysql.com/doc/refman/5.0/en/converting-tables-to-innodb.html

1
TigerTiger

これは、allテーブルをallデータベースとそのストレージにリストするクエリですエンジン:

SELECT table_name, table_schema, engine
FROM information_schema.tables;

https://serverfault.com/a/244792/406647 から)

0
CODE-REaD
0
Michal M