在MySQL中,无法为单个数据库指定存储引擎,只能为单个表指定存储引擎。但是,您可以使用以下命令指定要在一个会话中使用的存储引擎:
SET storage_engine=InnoDB;
因此,您不必为每个表都指定它。
如果确实所有表都使用InnoDB,如何确认?
Answers:
如果使用SHOW CREATE TABLE,则必须从查询中解析引擎。
从INFORMATION_SCHEMA数据库中进行选择是不明智的做法,因为开发人员保留随时更改其架构的权利(尽管可能性不大)。
正确使用的查询是SHOW TABLE STATUS-您可以获取数据库中所有表的信息:
SHOW TABLE STATUS FROM `database`;
或针对特定表:
SHOW TABLE STATUS FROM `database` LIKE 'tablename';
您将返回的专栏之一是Engine。
SELECT * FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'db name' AND ENGINE != 'InnoDB'