MySQL 转换表引擎的三种方式


ALTER TABLE

1
ALTER TABLE  mytable ENGINE = InnoDB;

缺点:执行时间很长。

导出与导入

使用 mysqldump 工具将数据导出到文件,然后修改文件中创建表的引擎,同时注意修改表名,删除 DROP TABLE 语句,再导入数据库。

创建与查询(CREATE 和 SELECT)

1
2
3
CREATE TABLE innodb_table LIKE myasim_table;
ALTER TABLE innodb_table ENGINE=InnoDB;
INSERT INTO innodb_table SELECT * FROM myisam_table;

如果数据量大的话,则可以考虑分批处理。

1
2
3
START TRANSACTION;
INSERT INTO innodb_table SELECT * FROM myisam_table WHERE id BETWEEN x AND y;
commit;

转载
高性能MySQL