#mysql查看引擎engine

  • mysql支持多种存储引擎,在处理不同类型的应用时,可以通过选择使用不同的存储引擎提高应用的效率,或者提供灵活的存储。
  • mysql的存储引擎包括:MyISAM、InnoDB、BDB、MEMORY、MERGE、EXAMPLE、NDB Cluster、ARCHIVE、CSV、BLACKHOLE、FEDERATED等,其中InnoDB和BDB提供事务安全表,其它存储引擎都是非事务安全表。

查看mysql中表的存储引擎类型有几个方法,具体如下:

  • show table status from 数据库库名 where name='表名',例:
    mysql> SHOW TABLE STATUS from mytest where Name='test'; mysqlshow -u 数据库登录账号用户名 -p'数据库登录账号密码' --status 数据库库名 表名

mysqlshow -uroot -p'mypassword' --status mytest test

  • show create table 表名

这种方法有时候是不准确的,例:
服务器配置没有启用InnoDB存储引擎,在创建表的时候设置的是InnoDB存储引擎,创建表时的命令:
mysql> create database mytest;

此时使用上面的方法1和2查看会看到test表使用的引擎是MyISAM,但是使用3查看会看到innodb。而实际上test表使用的存储引擎是MyISAM的。

  • 查看mysql服务器是否启用InnoDB存储引擎:

返回结果是: "InnoDB" 对应的 "Support"等于 “NO” ,表示未启用 InnoDB 存储引擎。

mysql> SHOW ENGINES;

+------------+---------+----------------------------------------------------------+(省略部分结果)
| Engine | Support | Comment |(省略部分结果)
+------------+---------+----------------------------------------------------------+(省略部分结果)
| InnoDB | NO | Supports transactions, row-level locking, and foreign keys|(省略部分结果)
| MRG_MYISAM | YES | Collection of identical MyISAM tables |(省略部分结果)
| BLACKHOLE | YES | /dev/null storage engine (anything you write to it disa(省略部分结果)
| CSV | YES | CSV storage engine |(省略部分结果)
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables|(省略部分结果)
| FEDERATED | NO | Federated MySQL storage engine |(省略部分结果)
| ARCHIVE | YES | Archive storage engine |(省略部分结果)
| MyISAM | DEFAULT | Default engine as of MySQL 3.23 with great performance|(省略部分结果)
+------------+---------+----------------------------------------------------------+