网上有很多类似于《查看 MySQL 表使用的存储引擎》的文章,不过都不严谨。使用 “SHOW CREATE TABLE 表名” 查看。这种方式查出的结果在某些情况下是不准确的。
比如创建表 "test"CREATE TABLE test (
id INT(11) defaultNULLauto_increment,
s char(60) defaultNULL,
PRIMARYKEY(id)
) ENGINE=InnoDB;
一般情况这样没任何问题。但是,如果MySQL服务器在配置中,未启用 InnoDB 存储引擎。在创建表 "test" 时,MySQL会自动选择默认的存储引擎 MyISAM 创建。
如何确认MySQL 服务器是否启用InnoDB 存储引擎?
mysql> SHOW ENGINES;
返回结果是:"InnoDB" 对应的 "Support"等于“NO” ,表示未启用 InnoDB 存储引擎。
如何查看mysql引擎类型:
使用不准确的方式:
“SHOW CREATE TABLE 表名” 查看
正确方式:SHOW TABLE STATUS from 数据库库名 where Name='表名'; (方式一)
mysqlshow -u 数据库登录帐号 -p '数据库登录帐号密码' --status 数据库库名 表名 (方式二)
更改表的引擎类型:创建时将表discuz.cdb_user的引擎设为innodb。
create table discuz.cdb_user engine = innodb;
也可以在创建表之后通过下面语句来变更:
alter table discuz.cdb_user engine =innodb;