Mysql 为什么SQL的导入如此缓慢?

Mysql 为什么SQL的导入如此缓慢?,mysql,windows,linux,Mysql,Windows,Linux,我有一个SQL文件,其中包含两个表,总共约600000行。昨天,我尝试将该文件导入Fedora16上的MySQL数据库,导入该文件花费了2个多小时。在我的Windows PC上花了7分钟。我的Linux和Windows机器具有完全相同的硬件。我的几个朋友也试过,他们也有类似的经历 我们使用的命令是:mysql-u root数据库\u name

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

我们使用的命令是:
mysql-u root数据库\u name


为什么在速度上会有如此大的差异?

我打赌Fedora 16尊重事务/同步语义,而Windows不尊重。如果你算一下,两小时内60万次更新等于每分钟5000次。这与磁盘的旋转速率的数量级相同


您可以尝试添加
SET autocommit=0
到导入文件的开头并提交结束。有关详细信息,请参阅。

为什么不将.sql文件导出为
大容量插入
选项并导入,请在使用mysqldump进行备份时尝试这些选项

--扩展插入
:使用多行插入语句

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


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

相同的表类型(INNODB/MYISAM/…)?是的,表类型是相同的:INNODB您签出了mysqlimport吗?请看@LarsSteen在不了解硬件的情况下,很难判断Windows是“太快”还是Fedora“太慢”。例如,磁盘是SSD还是旋转磁盘?@JoachimIsaksson它是旋转磁盘。型号:WDC WD5000BEVT-2 5400rpm。它带来了巨大的不同!只需再次尝试,导入的总时间不到3分钟。坦克很多:)出于好奇,这意味着什么?我认为MySQL的创作者没有把它放在慢模式上没有理由吗?@ Primsig只影响功率丢失或系统在操作中间崩溃的情况。如果发生这种情况,您愿意使用干净的数据库重新启动操作,则可以禁用这些安全性。当然,您可以使用类似于
(echo“SET autocommit=0;cat MyInputFile;echo“COMMIT;”)的命令行| mysql…
设置autocommit=0后的半列;是奥米特。完整的命令应该是:(echo“SET autocommit=0;”cat MyInputFile;echo“COMMIT;”)mysql…谢谢你的回答,我会查出来的。@Larsteen Mahesh Patil的提示有什么不同吗?没有。没什么不同。