我的MySQL数据库包含几个使用不同存储引擎的表 (特别是myisam和innodb)。我怎么知道是哪几张桌子呢 使用哪个引擎?
当前回答
或者运行这个:
show table status;
这将列出数据库上的所有表和相关详细信息。
其他回答
mysqlshow -i <database_name>
将显示特定数据库的所有表的信息。
mysqlshow -i <database_name> <table_name>
只对一个特定的表这样做。
显示数据库表状态;
它将列出上述数据库中的所有表。 示例输出
显示name=your_desired_table_name表状态;
它将显示上述表使用的存储引擎。
对Jocker的回复做了一点调整(我想作为评论发布,但我还没有足够的因果报应):
SELECT TABLE_NAME, ENGINE
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'database' AND ENGINE IS NOT NULL;
这将MySQL视图从列表中排除,因为它没有引擎。
要显示数据库中所有表及其引擎的列表,使用下面的SQL查询:
SELECT TABLE_NAME,
ENGINE
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'dbname';
将dbname替换为数据库名称。
如果您正在使用MySQL Workbench,右键单击一个表并选择alter table。
在这个窗口中,您可以看到您的表Engine,也可以更改它。