通过终端查看MySQL数据库使用的存储引擎
终端中是否有一个命令用于查找MySQL数据库使用的存储引擎?这在一些地方可用通过终端查看MySQL数据库使用的存储引擎,mysql,terminal,storage-engines,Mysql,Terminal,Storage Engines,终端中是否有一个命令用于查找MySQL数据库使用的存储引擎?这在一些地方可用 从显示创建表输出。 从信息模式 如果要查询多个表的引擎,还可以在信息\u schema.TABLES中找到它 SELECT ENGINE FROM information_schema.TABLES WHERE TABLE_NAME='yourtable' AND TABLE_SCHEMA='yourdatabase'; MySQL上的数据库可以使用多个存储引擎,因此您必须检查每个表。最简单的是做什么 sh
从
显示创建表
输出。
从信息模式
如果要查询多个表的引擎,还可以在信息\u schema.TABLES
中找到它
SELECT ENGINE
FROM information_schema.TABLES
WHERE
TABLE_NAME='yourtable'
AND TABLE_SCHEMA='yourdatabase';
MySQL上的数据库可以使用多个存储引擎,因此您必须检查每个表。最简单的是做什么
show create table yourtable;
并查看DDL语句末尾的“引擎”行是什么。e、 g.engine=InnoDB
,engine=MyISAM
,等等
如果要检查数据库中的所有表:
select TABLE_NAME, ENGINE
from information_schema.TABLES
where TABLE_SCHEMA='yourdbname'
这是一个较长的解决方案,但如果您想了解有关
信息\u模式的内容,它可能会很有用
mysql> select table_name,engine from information_schema.tables where table_name
= 'table_name' and table_schema = 'db_name';
您可以使用以下命令:
mysql -u[user] -p -D[database] -e "show table status\G"| egrep "(Index|Data)_length" | awk 'BEGIN { rsum = 0 } { rsum += $2 } END { print rsum }'
显示表状态,其中Name='user\u tbl'
SHOW ENGINES;
返回MySQL数据库支持的引擎,并告诉您如果在创建时没有另外指定,那么哪个引擎是默认引擎
mysql -u[user] -p -D[database] -e "show table status\G" | egrep "(Engine|Name)"
这将列出所有表及其对应的引擎。很高兴能全面了解一切
这是来自@yago riveiro的一个修改答案,他在那里展示了如何获得表格的大小,而不是使用中的引擎。另外,最好对命令的作用进行解释。SHOW CREATE TABLE
就是我如何做的。如果某些表的engine
列是InnoDB
,而其他表的列为null会怎么样?在这种情况下,null是什么意思?如果某些表的engine
列是InnoDB
,而其他表的engine
列是null呢?在这种情况下,null是什么意思?
mysql -u[user] -p -D[database] -e "show table status\G" | egrep "(Engine|Name)"