Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过终端查看MySQL数据库使用的存储引擎_Mysql_Terminal_Storage Engines - Fatal编程技术网

通过终端查看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

终端中是否有一个命令用于查找MySQL数据库使用的存储引擎?

这在一些地方可用


显示创建表
输出。 从信息模式 如果要查询多个表的引擎,还可以在
信息\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)"