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

Posted

技术标签:

【中文标题】通过终端查看 MySQL 数据库使用啥存储引擎【英文标题】:See what storage engine MySQL database uses via terminal通过终端查看 MySQL 数据库使用什么存储引擎 【发布时间】:2012-05-12 09:38:16 【问题描述】:

终端中是否有用于查找我的 mysql 数据库正在使用的存储引擎的命令?

【问题讨论】:

【参考方案1】:

这在一些地方可用。

来自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)

来自 information_schema

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

SELECT ENGINE 
FROM information_schema.TABLES
WHERE
  TABLE_NAME='yourtable'
  AND TABLE_SCHEMA='yourdatabase';

【讨论】:

SHOW CREATE TABLE 是我的做法。【参考方案2】:
SHOW ENGINES;

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

【讨论】:

【参考方案3】:

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

show create table yourtable;

并查看 DDL 语句末尾的“引擎”行是什么。例如engine=InnoDBengine=MyISAM等……

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

select TABLE_NAME, ENGINE
from information_schema.TABLES
where TABLE_SCHEMA='yourdbname'

【讨论】:

如果某些表的engine 列是InnoDB 而其他表为空怎么办?在这种情况下,null 是什么意思?【参考方案4】:

这是一个较长的解决方案,但如果您想了解有关 information_schema 的知识,它会很有用

mysql> select table_name,engine from information_schema.tables where table_name
= 'table_name' and table_schema = 'db_name';

【讨论】:

如果某些表的engine 列是InnoDB 而其他表为空怎么办?在这种情况下,null 是什么意思?【参考方案5】:

你可以使用这个命令:

mysql -u[user] -p -D[database] -e "show table status\G"| egrep "(Index|Data)_length" | awk 'BEGIN  rsum = 0   rsum += $2  END  print rsum '

【讨论】:

【参考方案6】:

在名称 = 'user_tbl' 时显示表状态

【讨论】:

【参考方案7】:
mysql -u[user] -p -D[database] -e "show table status\G" | egrep "(Engine|Name)"

这将列出所有表及其对应的引擎。很高兴了解所有内容!

这是来自@yago-riveiro 的修改答案,他在其中展示了如何获取表格的大小,而不是使用的引擎。另外,最好解释一下命令的作用。

【讨论】:

以上是关于通过终端查看 MySQL 数据库使用啥存储引擎的主要内容,如果未能解决你的问题,请参考以下文章

Mysql数据库3种存储引擎有啥区别?

Mysql数据库3种存储引擎有啥区别?

MySQL数据库之存储引擎

mysql引擎

查看mysql存储引擎

mysql存储引擎