是否可以在mysql上更改单个数据库以使用InnoDB而不是myISAM

时间:2010-08-17 12:58:09

标签: mysql innodb myisam

我想要一个使用InnoDB表而不是myISAM表的数据库(myISAM通常会给我带来良好的性能,所以我不想完全停止使用它。)

如果默认值为myISAM,是否可以指定数据库使用InnoDB表。

5 个答案:

答案 0 :(得分:2)

简短的回答是

ALTER TABLE `my_table` Engine=InnoDB charset=utf8 collate=utf8_bin;

答案 1 :(得分:1)

如果您使用phpmyadmin,则可以轻松指定要使用的引擎。我认为这是在逐个表格的基础上完成的。如果您希望整个数据库都是InnoDB,只需为界面中的每个表更改该选项。

答案 2 :(得分:1)

您始终可以在创建表格时指定要使用的引擎类型。

CREATE TABLE customers (a INT, b CHAR (20)) ENGINE=InnoDB;

答案 3 :(得分:1)

无法为某个数据库指定存储引擎,仅针对单个表,正如其他人指出的那样。但是,您可以指定在一个会话期间使用的存储引擎

SET storage_engine=InnoDB;

所以你不必为每个表指定它。

答案 4 :(得分:1)

您可以为数据库中的表指定数据库引擎。您甚至可以在同一数据库中为不同的表提供InnoDB和MyISAM引擎。

我认为您无法在数据库级别指定引擎。