首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何知道mysql表使用的是myISAM还是InnoDB引擎?

如何知道mysql表使用的是myISAM还是InnoDB引擎?
EN

Stack Overflow用户
提问于 2010-12-23 10:46:56
回答 3查看 68.3K关注 0票数 90

在MySQL中,无法为某个数据库指定存储引擎,只能为单个表指定存储引擎。但是,您可以使用以下命令指定要在一个会话期间使用的存储引擎:

代码语言:javascript
复制
SET storage_engine=InnoDB;

因此,您不必为每个表指定它。

我如何确认是否所有的表都在使用InnoDB?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-12-23 12:08:34

如果使用SHOW CREATE TABLE,则必须从查询中解析出引擎。

从INFORMATION_SCHEMA数据库中进行选择是一种糟糕的做法,因为开发人员保留随时更改其模式的权利(尽管这不太可能)。

要使用的正确查询是 -您可以获得有关数据库中所有表的信息:

代码语言:javascript
复制
SHOW TABLE STATUS FROM `database`;

或用于特定表:

代码语言:javascript
复制
SHOW TABLE STATUS FROM `database` LIKE 'tablename';

您将得到的列之一是Engine。

票数 143
EN

Stack Overflow用户

发布于 2010-12-23 10:48:24

代码语言:javascript
复制
SELECT * FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'db name' AND ENGINE != 'InnoDB'
票数 18
EN

Stack Overflow用户

发布于 2010-12-23 10:50:23

show create table <table>应该可以做到这一点。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4515490

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档