如何确定mysql数据库的类型:是InnoDB还是MyISAM?

时间:2009-10-28 15:38:09

标签: sql mysql types

  • 如何确定mysql数据库的类型:是InnoDB还是MyISAM?
  • 如何将MyISAM转换为InnoDB,反之亦然?

6 个答案:

答案 0 :(得分:39)

要确定表使用的存储引擎,您可以使用show table status。结果中的Engine字段将显示表的数据库引擎。或者,您可以从information_schema.tables中选择engine字段:

select engine 
from   information_schema.tables 
where  table_schema = 'schema_name'
   and table_name = 'table_name' 

您可以使用alter table更改存储引擎:

alter table the_table engine = InnoDB;

当然,您可以指定任何可用的存储引擎。

答案 1 :(得分:13)

选择有问题的数据库并运行show table status;

答案 2 :(得分:4)

SHOW TABLE STATUS FROM `database`;

将列出所有表的所有内容,从它们是MyISAM还是InnoDB开始。如果您只想列出有关1个表的数据,可以使用以下语法*:

SHOW TABLE STATUS FROM `database` LIKE 'table';

更改表引擎:

ALTER TABLE `table` ENGINE=InnoDB;

*注意在LIKE之后使用GRAVE ACCENT(`反引号)作为数据库名称和表名,并使用SINGLE QUOTE(')作为比较字符串(表名的一部分)。

  

`!='

答案 3 :(得分:1)

答案 4 :(得分:0)

答案 5 :(得分:0)

这是一个查询,其中列出了所有数据库及其存储引擎中的所有表:

SELECT table_name, table_schema, engine
FROM information_schema.tables;

(来自https://serverfault.com/a/244792/406647