我通过MySQL控制台导入SQL相当慢,而且,由于我们的SQL文件每天都在增加,我想知道是否有其他方法可以更快地导入SQL文件。
不能选择更改为Oracle或其他系统,必须保持配置不变。
当前SQL文件为: 1.5 GB。我使用的是WAMP和Apache2.2.14,PHP5.2.11和MySQL 5.1.41。
也许问题出在这里,导入是通过一个简单的方法完成的:
mysql -u username -p dbname < sqlfilename.sql有什么建议吗?
发布于 2010-06-02 17:37:53
在导入期间启用索引将使您的服务器速度减慢到爬行。在导入之前和之后使用ALTER TABLEtablenameDISABLE KEYS;将提高导入速度,但重新创建索引需要一些时间,因此可能不会获得很大的速度提升。
此外,也许使用myisam表(与带有引用完整性选项的innodb相比)通常可以提供更好的性能,因为不涉及引用完整性开销。
就我个人而言,我不使用mysql控制台中的import语句,而是使用mysql -uUSER -pPASS DBNAME < file.sql导入sql文件,它对我来说效果很好。
希望能有所帮助。
发布于 2012-10-31 06:55:30
尝试这些http://dev.mysql.com/doc/refman/5.5/en/optimizing-innodb-bulk-data-loading.html
这可能是一个自动提交的问题,关闭它,然后看看会发生什么。
SET autocommit=0 ; source <your dump file> ; COMMIT ;发布于 2016-09-30 18:41:55
关闭自动提交是Bulk Data Loading for InnoDB Tables中提供的一系列建议中的第一个,用于加快MySQL的恢复操作。
不需要在恢复时手动关闭自动提交,您已经可以将MySQL数据转储到您的SQL文件中,其中包括所有必要的语句。
mysqldump的命令行参数是--no-autocommit。您还可以考虑添加--opt,它设置了其他参数的组合以加快恢复操作。
下面是我使用的一个完整的mysqldump命令行的示例,其中包含--no-autocommit和--opt
mysqldump -hlocalhost -uMyUser -p'MyPassword' --no-autocommit --opt --default-character-set=utf8 --quote-names MyDbName > dump.sql有关这些参数的详细信息,请参阅reference of mysqldump
https://stackoverflow.com/questions/2956407
复制相似问题