首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何快速导入用于mysql的大型sql脚本?

如何快速导入用于mysql的大型sql脚本?
EN

Stack Overflow用户
提问于 2015-04-24 05:04:26
回答 4查看 2.3K关注 0票数 2

目前,我遇到了一种情况,需要将一个巨大的sql脚本导入mysql。sql脚本内容主要涉及插入操作。但是那里有这么多的记录,文件大小在80 is左右。

该机器有8个cpus,20 mem的内存。我做过这样的事情:

代码语言:javascript
运行
复制
mysql -h [*host_ip_address*] -u *username* -px xxxxxxx -D *databaseName* < giant.sql

但是整个过程需要服务器天,,这是相当long.Is,还有其他任何将该文件导入数据库的选项吗?

非常感谢。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-04-24 07:01:41

我建议你试试负载数据信息。它非常快。我没有使用它加载到远程服务器,但有mysqlimport实用程序。参见不同方法的比较:https://dev.mysql.com/doc/refman/5.5/en/insert-speed.html

此外,还需要将sql脚本转换为适合LOAD DATA INFILE子句的格式。

票数 0
EN

Stack Overflow用户

发布于 2015-04-24 09:20:25

您可以使用shell脚本将sql文件分解为多个文件(基于表)&然后一个接一个地准备一个shell脚本来导入该文件。这将迅速插入,而不是一次进入。

原因是插入的记录占用了单个进程在内存中的空间,而不是删除。您可以看到,在5小时后导入脚本时,查询执行速度将很慢。

票数 0
EN

Stack Overflow用户

发布于 2015-04-27 04:46:11

谢谢你们的帮助。

我已经采纳了你的一些建议,并对此做了一些比较,现在是时候发布结果了。目标单一sql脚本15 The。

总的来说,我试过:

  1. 将数据导入为带有索引的单一sql脚本;(以Days为例,我最终将其终止。不要自己动手,你会生气的。)
  2. 将数据导入为没有索引的单一sql脚本;(与上面相同)
  3. 将数据导入为带有索引的split脚本(以单个sql为例,我将大文件分成大约41 an的小块)。每个树干约2m19.586s,总周长);
  4. 在没有索引的情况下,以script的形式导入数据;(每个主干采用2m9.326 s)。

(不幸的是,我没有为这个数据集尝试加载数据方法)

结论:

如果您不想使用Load数据方法,则必须将庞大的sql导入mysql。最好是:

  1. 分为小剧本;
  2. 删除索引

您可以在导入后再添加索引。干杯

谢谢@btilly @Hitesh Mundra

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

https://stackoverflow.com/questions/29839112

复制
相关文章

相似问题

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