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

时间:2008-10-17 19:28:38

标签: mysql innodb myisam

我的MySQL数据库包含几个使用不同存储引擎的表 (特别是myisam和innodb)。我怎样才能找出哪些表格 使用哪种引擎?

13 个答案:

答案 0 :(得分:459)

SHOW TABLE STATUS WHERE Name = 'xxx'

这将为您(除其他外)提供Engine列,这就是您想要的。

答案 1 :(得分:217)

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

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

dbname替换为您的数据库名称。

答案 2 :(得分:47)

SHOW CREATE TABLE <tablename>;

SHOW TABLE STATUS更易解析但更具可读性。

答案 3 :(得分:39)

或只是

show table status;

这将列出数据库中的所有表。

答案 4 :(得分:13)

对Jocker的回应进行了一些调整(我会发表评论,但我还没有足够的业力):

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

这会从列表中排除MySQL视图,这些视图没有引擎。

答案 5 :(得分:9)

SHOW CREATE TABLE <tablename>\G

的输出相比,

将格式化得更好

SHOW CREATE TABLE <tablename>;

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

答案 6 :(得分:7)

mysqlshow -i <database_name>

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

mysqlshow -i <database_name> <table_name> 

只针对特定的表格。

答案 7 :(得分:3)

如果您正在使用MySQL Workbench,则可以右键单击该表并选择“更改表格”。

在该窗口中,您可以看到表格引擎并更改它。

答案 8 :(得分:2)

如果您是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 

.
.
.

答案 9 :(得分:1)

另一种方式,也许是获得单个或匹配表集状态的最短时间:

SHOW TABLE STATUS LIKE 'table';

然后您可以使用LIKE运算符,例如:

SHOW TABLE STATUS LIKE 'field_data_%';

答案 10 :(得分:1)

  

显示数据库名称中的表状态; <​​/ p>

它将列出提到的数据库中的所有表。
示例输出

sample output of mysql db

  

显示表状态,其中name = your_desired_table_name;

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

答案 11 :(得分:0)

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

Mysql&gt;使用information_schema; MySQL的&GT; select table_name,table from tables;

答案 12 :(得分:0)

如果您是 GUI 的人,并且只想在 PhpMyAdmin 中找到它,则可以选择您选择的表,然后转到Operations标签> > Table options >> Storage Engine。 您甚至可以使用下拉选项列表从那里进行更改。

PS:本指南基于PhpMyAdmin的4.8版本。对于非常老的版本,无法保证使用相同的路径。