我有一个SQL文件,其中包含两个表,总共约60万行.昨天,我试图将该文件导入Fedora 16上的MySQL数据库,导入该文件花了2个多小时.在我的Windows PC上花了7分钟.我的Linux和Windows机器有完全相同的硬件.我的几个朋友也try 过,他们也有类似的经历.
我们使用的命令是:mysql -u root database_name < sql_file.sql
.
为什么速度有这么大的差异?
我有一个SQL文件,其中包含两个表,总共约60万行.昨天,我试图将该文件导入Fedora 16上的MySQL数据库,导入该文件花了2个多小时.在我的Windows PC上花了7分钟.我的Linux和Windows机器有完全相同的硬件.我的几个朋友也try 过,他们也有类似的经历.
我们使用的命令是:mysql -u root database_name < sql_file.sql
.
为什么速度有这么大的差异?
我敢打赌Fedora 16尊重事务/同步语义,Windows则不然.如果你算一下,两小时内60万次更新等于每分钟5000次.这和圆盘的旋转速度是相同的数量级.
您可以try 将SET autocommit=0;
添加到导入文件的开头,将COMMIT;
添加到结尾.更多信息请参见this page.