Lar*_*een 36 mysql linux windows
我有一个包含两个表的SQL文件,共有大约600,000行.昨天,我尝试将文件导入Fedora 16上的MySQL数据库,导入文件需要2个多小时.在我的Windows PC上花了7分钟.我的Linux和Windows机器具有完全相同的硬件.我的几个朋友也试过了,他们有类似的经历.
我们使用的命令是:mysql -u root database_name < sql_file.sql
.
为什么速度有这么大的差异?
Dav*_*rtz 68
我敢打赌,Fedora 16正在尊重事务/同步语义而Windows并不是.如果算一算,两小时内600,000次更新是每分钟5,000次.这与磁盘的旋转速率具有相同的数量级.
您可以尝试添加SET autocommit=0;
到导入文件的开头并COMMIT;
结束.有关更多信息,请参阅此页面.
为什么不导出 .sql 文件作为BULK INSERT
选项并导入它,在使用 mysqldump 进行备份时尝试这些选项
--extended-insert
: 使用多行插入语句
--quick
: 不要缓冲行数据,如果表很大的话很好
注意:max_allowed_packet
在生成 .sql 文件之前,确保你应该在 my.cnf 文件中增加=32M 或更多的值。