为什么导入SQL这么慢?

时间:2012-04-19 11:30:46

标签: mysql windows linux

我有一个包含两个表的SQL文件,共有大约600,000行。昨天,我尝试将文件导入Fedora 16上的MySQL数据库,导入文件需要2个多小时。在我的Windows PC上花了7分钟。我的Linux和Windows机器具有完全相同的硬件。我的几个朋友也试过了,他们有类似的经历。

我们使用的命令是:mysql -u root database_name < sql_file.sql

为什么速度会有这么大差异?

2 个答案:

答案 0 :(得分:68)

我敢打赌,Fedora 16正在尊重事务/同步语义而Windows并不是。如果算一算,两小时内600,000次更新是每分钟5,000次。这与磁盘的转速相同。

您可以尝试将SET autocommit=0;添加到导入文件的开头,然后COMMIT;添加到结尾。有关详细信息,请参阅this page

答案 1 :(得分:4)

为什么不将.sql文件导出为BULK INSERT选项并导入它,在使用mysqldump进行备份时尝试这些选项

--extended-insert:使用多行插入语句

--quick:不要对行数据进行缓冲,如果表格很大则很好

注意:在生成.sql文件之前,请确保在my.cnf文件中增加max_allowed_packet = 32M或更高的值。