我的MySQL数据库包含几个使用不同存储引擎的表 (特别是myisam和innodb)。我怎么知道是哪几张桌子呢 使用哪个引擎?
当前回答
除了前面的例子外,你还可以从information_schema db中通过标准查询得到如下信息:
use information_schema;
select NAME from INNODB_TABLES where NAME like "db_name%";
其他回答
SHOW TABLE STATUS WHERE Name = 'xxx'
这将为您提供一个Engine列(以及其他内容),这就是您想要的。
SHOW CREATE TABLE <tablename>\G
它的格式会比输出更好吗
SHOW CREATE TABLE <tablename>;
\G技巧对于许多其他查询/命令也很有用。
或者运行这个:
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 <tablename>;
可解析性较差,但可读性比SHOW TABLE STATUS强。