如何找到我的桌子是MyISAM还是Innodb

Nic*_*ilt 30 mysql

可能重复:
如何检查特定表的MySQL引擎类型?

假设用户是一个跟随命令的表,则不会显示用户表是MyISAM还是Innodb.

desc users; 
Run Code Online (Sandbox Code Playgroud)

如何找到用户表的类型?

And*_*ore 47

You can use SHOW TABLE STATUS to see table information.

SHOW TABLE STATUS WHERE `Name` = 'my_table';
Run Code Online (Sandbox Code Playgroud)

Simply check the value of the Engine column in the returned dataset to know which engine the table is using.


Wri*_*ken 18

SELECT ENGINE
FROM INFORMATION_SCHEMA.TABLES 

WHERE TABLE_NAME='your_table_name'
AND   TABLE_SCHEMA='your_database_name';
-- or use TABLE_SCHEMA=DATABASE() if you have a default one.
Run Code Online (Sandbox Code Playgroud)


Dan*_*llo 6

您可以在响应中使用SHOW CREATE TABLE和查找该ENGINE部件.

SHOW CREATE TABLE users;
Run Code Online (Sandbox Code Playgroud)

例:

CREATE TABLE innodb_table (id int, value int) ENGINE=INNODB;
CREATE TABLE myisam_table (id int, value int) ENGINE=MYISAM;
CREATE TABLE default_table (id int, value int);
Run Code Online (Sandbox Code Playgroud)

结果innodb_table:

SHOW CREATE TABLE innodb_table;
+--------------+----------------------------------------------------------------------------------------------------------------------------------+
| Table        | Create Table                                                                                                                     |
+--------------+----------------------------------------------------------------------------------------------------------------------------------+
| innodb_table | CREATE TABLE `innodb_table` (
  `id` int(11) DEFAULT NULL,
  `value` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+--------------+----------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)

结果myisam_table:

SHOW CREATE TABLE myisam_table;
+--------------+----------------------------------------------------------------------------------------------------------------------------------+
| Table        | Create Table                                                                                                                     |
+--------------+----------------------------------------------------------------------------------------------------------------------------------+
| myisam_table | CREATE TABLE `myisam_table` (
  `id` int(11) DEFAULT NULL,
  `value` int(11) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 |
+--------------+----------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)

结果default_table:

SHOW CREATE TABLE default_table;
+---------------+-----------------------------------------------------------------------------------------------------------------------------------+
| Table         | Create Table                                                                                                                      |
+---------------+-----------------------------------------------------------------------------------------------------------------------------------+
| default_table | CREATE TABLE `default_table` (
  `id` int(11) DEFAULT NULL,
  `value` int(11) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 |
+---------------+-----------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)

  • +1.这可能是检查存储引擎最常见且易于记忆的方式,即使有点'嘈杂'. (4认同)
  • @Andrew - 谁给出了关于存储引擎一次性检查成本的折腾? (3认同)
  • @Andrew:费用是多少?...从技术上讲,你的答案可能更好,但是"SHOW CREATE TABLE"的响应不仅更容易阅读(在我看来),而且更短. (2认同)