448

我的 MySQL 数据库包含几个使用不同存储引擎(特别是 myisam 和 innodb)的表。如何找出哪些表正在使用哪个引擎?

4

14 回答 14

576

SHOW TABLE STATUS WHERE Name = 'xxx'

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

于 2008-10-17T19:30:09.303 回答
277

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

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

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

于 2010-11-19T13:51:33.217 回答
53
SHOW CREATE TABLE <tablename>;

比 . 更难解析但更易读SHOW TABLE STATUS

于 2008-10-17T19:33:10.017 回答
49

要不就

show table status;

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

于 2009-08-19T04:29:20.227 回答
21

对 Jocker 的回应稍作调整(我会发表评论,但我还没有足够的业力):

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

这从列表中排除了没有引擎的 MySQL 视图。

于 2011-08-12T16:31:17.837 回答
10
SHOW CREATE TABLE <tablename>\G

与输出相比,它的格式会更好

SHOW CREATE TABLE <tablename>;

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

于 2013-01-13T18:18:32.807 回答
10

从 database_name 显示表状态;

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

mysql db的示例输出

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

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

于 2019-02-10T19:36:31.283 回答
8
mysqlshow -i <database_name>

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

mysqlshow -i <database_name> <table_name> 

将只针对特定表执行此操作。

于 2014-04-11T13:19:41.817 回答
5

如果您使用的是MySQL Workbench,请右键单击表并选择alter table.

在该窗口中,您可以看到您的表引擎并对其进行更改。

于 2015-09-24T07:58:55.573 回答
3

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

SHOW TABLE STATUS LIKE 'table';

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

SHOW TABLE STATUS LIKE 'field_data_%';
于 2015-01-04T07:12:46.607 回答
2

如果你是 linux 用户:

要显示 mysql 服务器上所有数据库的所有表的引擎,不包括表information_schema, mysql, performance_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 

.
.
.
于 2015-07-13T13:52:16.400 回答
0

转到 information_schema 数据库,您会找到“tables”表,然后选择它;

mysql>使用信息架构;mysql> select table_name,engine from tables;

于 2013-08-01T08:28:44.007 回答
0

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

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

于 2019-02-14T11:06:36.520 回答
0

除了前面条目中显示的示例外,您还可以使用标准查询从 information_schema db 中获取,如下所示:

use information_schema;

select NAME from INNODB_TABLES where NAME like "db_name%";
于 2021-09-23T06:15:08.000 回答