网上有很多类似于《查看 MySQL 表使用的存储引擎》的文章,不过都不严谨。使用 “SHOW CREATE TABLE 表名” 查看。这种方式查出的结果在某些情况下是不准确的。

比如创建表 “test”

1CREATE TABLE test (
2id INT(11) defaultNULLauto_increment,
3 s char(60) defaultNULL,
4 PRIMARYKEY(id)
5) ENGINE=InnoDB;

一般情况这样没任何问题。但是,如果MySQL服务器在配置中,未启用 InnoDB 存储引擎。在创建表 “test” 时,MySQL会自动选择默认的存储引擎 MyISAM 创建。

如何确认MySQL 服务器是否启用InnoDB 存储引擎?

1mysql> SHOW  ENGINES;

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

如何查看mysql引擎类型:

使用不准确的方式:“SHOW CREATE TABLE 表名” 查看

正确方式:

1SHOW TABLE STATUS from  数据库库名  where Name='表名';(方式一)
2mysqlshow  -u 数据库登录帐号 -p '数据库登录帐号密码' --status   数据库库名   表名 (方式二)
3
4更改表的引擎类型:
51. 创建时将表discuz.cdb_user的引擎设为innodb
6create table discuz.cdb_user engine = innodb;
7
82. 也可以在创建表之后通过下面语句来变更:
9alter table discuz.cdb_user engine =innodb;