首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL失败,导入大文件的速度非常慢

问MySQL失败,导入大文件的速度非常慢
EN

Database Administration用户
提问于 2014-02-08 07:03:51
回答 2查看 9.8K关注 0票数 5

我有一个47 GB的单个表的MySQL转储:

http://dumps.wikimedia.org/commonswiki/latest/commonswiki-latest-image.sql.gz

我最终希望将其转换到PostgreSQL中,但由于我没有找到一种简单的方法将MySQL SQL转换为PostgreSQL SQL,所以我会将其转换为MySQL,然后编写一个小的ETL脚本来完成这一任务。

我最初尝试使用MySQL WorkBench数据导入/恢复加载它,但是它失败了。

现在我已经运行了split -l 2000 commonswiki-latest-image.sql,有20个文件,每个文件大约有2GB,但是仍然失败了:

代码语言:javascript
复制
23:12:28 Restoring C:\temp\commonswiki\xaa.sql

Running: mysql.exe --defaults-extra-file="c:\users\jmurdoch\appdata\local\temp\tmpi_ltz8.cnf"  --host=127.0.0.1 --user=root --port=3306 --default-character-set=utf8 --comments --database=mediawikiimages < "C:\\temp\\commonswiki\\xaa.sql"

ERROR 2013 (HY000) at line 331: Lost connection to MySQL server during query


Operation failed with exitcode 1

00:54:17 Import of C:\temp\commonswiki\xaa.sql has finished with 1 errors

它也非常慢,因为它在近两个小时内只导入了209236行,但我认为大约有2000万个项目要导入,所以按这个速度,导入需要200个小时。

我使用的是Windows7、MySQL 5.6.14和MySQL工作台6。

我的主要问题是:

  • 是否有脚本将向MySQL提供分裂的文件并执行自动错误恢复以防止超时?
  • 是否有一个转换工具可以将MySQL SQL转换为PostgreSQL SQL,而无需首先将其加载到数据库中?
EN

回答 2

Database Administration用户

回答已采纳

发布于 2014-02-11 08:50:05

使用

代码语言:javascript
复制
max_allowed_packet = 256M

在MySQL中,可以在没有错误的情况下导入文件。

票数 3
EN

Database Administration用户

发布于 2020-03-26 20:35:04

克里西米尔-普利斯对如何将大型(14 GB) MySQL转储文件导入新的MySQL数据库?关于堆栈溢出的回答帮助了我:

mysql -u根-p set全局net_buffer_length=1000000;--将网络缓冲区长度设置为大字节数集全局max_allowed_packet=1000000000;--将允许的最大数据包大小设置为大字节数集foreign_key_checks = 0;-禁用外键检查以避免延迟、错误和不必要的行为源file.sql --导入sql转储文件集foreign_key_checks = 1;-记住在过程完成时启用外键检查!

来自尼古拉斯的评论:

在mariadb上,检查最大值:设置全局net_buffer_length=1048576;设置全局max_allowed_packet=1073741824;

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

https://dba.stackexchange.com/questions/58493

复制
相关文章

相似问题

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