查看MySQL数据库通过终端使用的存储引擎

Nig*_*awk 13 mysql terminal storage-engines

终端中是否有命令可以找出我的MySQL数据库使用的存储引擎?

Mic*_*ski 24

这在几个地方有售.

SHOW CREATE TABLE输出.

mysql> SHOW CREATE TABLE guestbook.Guestbook;
+-----------+-------------------------------------------+
| Table     | Create Table                                                                                                                                                                   |
+-----------+-------------------------------------------+
| Guestbook | CREATE TABLE `Guestbook` (
  `NAME` varchar(128) NOT NULL DEFAULT '',
  `MESSAGE` text NOT NULL,
  `TIMESTAMP` varchar(24) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 |
+-----------+-------------------------------------------+
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)

来自information_schema

information_schema.TABLES如果要查询多个表的引擎,也可以找到它.

SELECT ENGINE 
FROM information_schema.TABLES
WHERE
  TABLE_NAME='yourtable'
  AND TABLE_SCHEMA='yourdatabase';
Run Code Online (Sandbox Code Playgroud)


Mar*_*c B 9

MySQL上的数据库可以使用多个存储引擎,因此您必须检查每个表.最简单的是做

show create table yourtable;
Run Code Online (Sandbox Code Playgroud)

并查看DDL语句末尾的"引擎"行.例如engine=InnoDB,engine=MyISAM等...

如果要检查数据库中的所有表:

select TABLE_NAME, ENGINE
from information_schema.TABLES
where TABLE_SCHEMA='yourdbname'
Run Code Online (Sandbox Code Playgroud)


Art*_*gma 9

SHOW ENGINES;
Run Code Online (Sandbox Code Playgroud)

返回MySQL数据库支持的引擎,如果没有在创建时指定,则告诉您哪个是默认引擎.