如何检查特定表的MySQL引擎类型?

我的MySQL数据库包含几个使用不同存储引擎的表 (特别是myisam和innodb)。我怎么知道是哪几张桌子呢 使用哪个引擎?< / p >

388409 次浏览
SHOW TABLE STATUS WHERE Name = 'xxx'

这将给你一个Engine列,这是你想要的。

SHOW CREATE TABLE <tablename>;

可解析性较差,但可读性比SHOW TABLE STATUS强。

或者运行这个:

show table status;

这将列出数据库上的所有表和相关详细信息。

要显示数据库中所有表及其引擎的列表,使用下面的SQL查询:

SELECT TABLE_NAME,
ENGINE
FROM   information_schema.TABLES
WHERE  TABLE_SCHEMA = 'dbname';

用你的数据库名替换dbname

对Jocker的回复做了一点调整(我想作为评论发布,但我还没有足够的因果报应):

SELECT TABLE_NAME, ENGINE
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'database' AND ENGINE IS NOT NULL;

这将MySQL视图从列表中排除,因为它没有引擎。

SHOW CREATE TABLE <tablename>\G

它的格式会比输出更好吗

SHOW CREATE TABLE <tablename>;

\G技巧对于许多其他查询/命令也很有用。

转到information_schema数据库,你会发现'tables'表,然后选择它;

< p > Mysql >使用information_schema; Mysql> select table_name,engine from tables
mysqlshow -i <database_name>

将显示特定数据库的所有表的信息。

mysqlshow -i <database_name> <table_name>

只对一个特定的表这样做。

还有另一种方法,可能是获取单个或匹配的表集状态的最短方法:

SHOW TABLE STATUS LIKE 'table';

然后你可以使用LIKE操作符,例如:

SHOW TABLE STATUS LIKE 'field_data_%';

如果你是linux用户:

显示mysql服务器上所有数据库的所有表的引擎,不包含表information_schemamysqlperformance_schema:

less < <({ for i in $(mysql -e "show databases;" | cat | grep -v -e Database-e information_schema -e mysql -e performance_schema); do echo "--------------------$i--------------------";  mysql -e "use $i; show table status;"; done } | column -t)

你可能会喜欢这个,如果你在linux上,至少。

将打开less中所有表的所有信息,按-S删除过长的行。

示例输出:

--------------------information_schema--------------------
Name                                                        Engine              Version  Row_format  Rows   Avg_row_length  Data_length  Max_data_length     Index_length  Data_free  Auto_increment  Create_time  Update_time  Check_time  C
CHARACTER_SETS                                              MEMORY              10       Fixed       NULL   384             0            16434816            0             0          NULL            2015-07-13   15:48:45     NULL        N
COLLATIONS                                                  MEMORY              10       Fixed       NULL   231             0            16704765            0             0          NULL            2015-07-13   15:48:45     NULL        N
COLLATION_CHARACTER_SET_APPLICABILITY                       MEMORY              10       Fixed       NULL   195             0            16357770            0             0          NULL            2015-07-13   15:48:45     NULL        N
COLUMNS                                                     MyISAM              10       Dynamic     NULL   0               0            281474976710655     1024          0          NULL            2015-07-13   15:48:45     2015-07-13  1
COLUMN_PRIVILEGES                                           MEMORY              10       Fixed       NULL   2565            0            16757145            0             0          NULL            2015-07-13   15:48:45     NULL        N
ENGINES                                                     MEMORY              10       Fixed       NULL   490             0            16574250            0             0          NULL            2015-07-13   15:48:45     NULL        N
EVENTS                                                      MyISAM              10       Dynamic     NULL   0               0            281474976710655     1024          0          NULL            2015-07-13   15:48:45     2015-07-13  1
FILES                                                       MEMORY              10       Fixed       NULL   2677            0            16758020            0             0          NULL            2015-07-13   15:48:45     NULL        N
GLOBAL_STATUS                                               MEMORY              10       Fixed       NULL   3268            0            16755036            0             0          NULL            2015-07-13   15:48:45     NULL        N
GLOBAL_VARIABLES                                            MEMORY              10       Fixed       NULL   3268            0            16755036            0             0          NULL            2015-07-13   15:48:45     NULL        N
KEY_COLUMN_USAGE                                            MEMORY              10       Fixed       NULL   4637            0            16762755            0


.
.
.

如果你正在使用MySQL工作台,右键单击一个表并选择alter table

在这个窗口中,您可以看到您的表Engine,也可以更改它。

< img src = " https://i.stack.imgur.com/zc2Nx.png " alt = " / >

显示数据库表状态;

它将列出上述数据库中的所有表 示例输出< / >强

sample output of mysql db

显示name=your_desired_table_name表状态;

它将显示上述表使用的存储引擎。

如果你是一个GUI的人,只是想在PhpMyAdmin中找到它,那么选择你所选择的表,并在Operations选项卡>> Table options >> Storage Engine。 你甚至可以从那里使用下拉选项列表来更改它

PS:本指南基于PhpMyAdmin的4.8版本。不能保证非常旧的版本有相同的路径。

除了前面的例子外,你还可以从information_schema db中通过标准查询得到如下信息:

use information_schema;


select NAME from INNODB_TABLES where NAME like "db_name%";