如何将MyISAM.sql转储转换为InnoDB?

在将数据导入到MySQL服务器之前,我可以将转储的.sql MyISAM数据库转换为InnoDB引擎吗? 不幸的是,导入当前的.sql文件需要很长时间才能完成。

您可以使用sedsearchengine myisam ,并将其replace为engine innodb

 sed -e 's/engine myisam/engine innodb/g file.sql' > file_innodb.sql 

如果你真的想在导入之前改变引擎,find/replace是唯一的方法。 不知道是否将MyISAM更改为InnoDB可以加速导入,但要考虑几点:

如果你有一个大的转储,不要使用phpMyAdmin进行导入。 使用phpMyAdmin,我们强制执行最大执行时间等php限制,导入可能会失败。 使用命令行 – Windows中的CMD或linux上的Terminal – login到mysql,然后导入转储。 这工作得很好,我已经做了2.5GB的文件import没有问题。

import速度也取决于转储本身。 如果转储创build与每个logging1插入语句然后它的方式慢。 在导出过程中select“在每个INSERT语句中插入多行”,然后导入将会快得多