首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL控制台导入大型SQL文件速度较慢

MySQL控制台导入大型SQL文件速度较慢
EN

Stack Overflow用户
提问于 2010-06-02 17:30:59
回答 4查看 16.3K关注 0票数 8

我通过MySQL控制台导入SQL相当慢,而且,由于我们的SQL文件每天都在增加,我想知道是否有其他方法可以更快地导入SQL文件。

不能选择更改为Oracle或其他系统,必须保持配置不变。

当前SQL文件为: 1.5 GB。我使用的是WAMP和Apache2.2.14,PHP5.2.11和MySQL 5.1.41。

也许问题出在这里,导入是通过一个简单的方法完成的:

代码语言:javascript
复制
mysql -u username -p dbname < sqlfilename.sql

有什么建议吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-06-02 17:37:53

在导入期间启用索引将使您的服务器速度减慢到爬行。在导入之前和之后使用ALTER TABLEtablenameDISABLE KEYS;将提高导入速度,但重新创建索引需要一些时间,因此可能不会获得很大的速度提升。

此外,也许使用myisam表(与带有引用完整性选项的innodb相比)通常可以提供更好的性能,因为不涉及引用完整性开销。

就我个人而言,我不使用mysql控制台中的import语句,而是使用mysql -uUSER -pPASS DBNAME < file.sql导入sql文件,它对我来说效果很好。

希望能有所帮助。

票数 5
EN

Stack Overflow用户

发布于 2012-10-31 06:55:30

尝试这些http://dev.mysql.com/doc/refman/5.5/en/optimizing-innodb-bulk-data-loading.html

这可能是一个自动提交的问题,关闭它,然后看看会发生什么。

代码语言:javascript
复制
SET autocommit=0 ; source <your dump file> ; COMMIT ;
票数 6
EN

Stack Overflow用户

发布于 2016-09-30 18:41:55

关闭自动提交是Bulk Data Loading for InnoDB Tables中提供的一系列建议中的第一个,用于加快MySQL的恢复操作。

不需要在恢复时手动关闭自动提交,您已经可以将MySQL数据转储到您的SQL文件中,其中包括所有必要的语句。

mysqldump的命令行参数是--no-autocommit。您还可以考虑添加--opt,它设置了其他参数的组合以加快恢复操作。

下面是我使用的一个完整的mysqldump命令行的示例,其中包含--no-autocommit--opt

代码语言:javascript
复制
mysqldump -hlocalhost -uMyUser -p'MyPassword' --no-autocommit --opt --default-character-set=utf8 --quote-names  MyDbName  >  dump.sql

有关这些参数的详细信息,请参阅reference of mysqldump

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2956407

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档