我的MySQL数据库包含几个使用不同存储引擎的表(特别是myisam和innodb).如何找出哪个表使用哪个引擎?
SHOW TABLE STATUS WHERE Name = 'xxx'
这将为您(除其他外)提供一个Engine
列,这是您想要的.
要显示数据库及其引擎中所有表的列表,请使用以下SQL查询:
SELECT TABLE_NAME, ENGINE FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'dbname';
替换dbname
为您的数据库名称.
SHOW CREATE TABLE;
不易解析但更易读SHOW TABLE STATUS
.
要不就
show table status;
只是这将列出您数据库中的所有表.
对Jocker的回应有点调整(我会发表评论,但我还没有足够的业力):
SELECT TABLE_NAME, ENGINE FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'database' AND ENGINE IS NOT NULL;
这会从列表中排除MySQL视图,这些视图没有引擎.
SHOW CREATE TABLE\G
与输出相比,它的格式会更好
SHOW CREATE TABLE;
\G
对于许多其他查询/命令,这个技巧也很有用.
mysqlshow -i
将显示特定数据库的所有表的信息.
mysqlshow -i
将只为特定的表格这样做.