如何生成1500万个+数据点并从节点服务器插入到mysql而没有错误

时间:2017-12-03 20:01:21

标签: javascript mysql node.js mariadb

我写了一个脚本,用544,320批量生成5,443,200个数据记录,使用mysqljs / mysql模块插入mysql数据库,当我尝试增加数据记录量时,我得到一个节点堆出来内存错误。我尝试使用生成器和迭代器重构它,但这样做似乎引入了很多错误行为并最终崩溃了我的mysql服务器。我也在群集节点模块中抛出,看看是否会有所帮助,但是这会导致我的mysql服务器拒绝连接,有时甚至会崩溃我的计算机。

我的问题是,我如何能够扩展脚本,使得我可以生成在理想情况下生成和插入速率相同的500万I的30倍?我估计我仍然可以使用生成器和迭代器,因为它很可能是我的特定实现的错误。

https://gist.github.com/anonymous/bed4a311fb746ba04c65d331d23bd0a8

1 个答案:

答案 0 :(得分:2)

一次批量插入超过1000行非常容易进入"收益递减"。 1000给出了理论最大值的99%。

当你超过1000时,你首先会陷入低效率,然后你(因为你发现)得到限制。你试图达到100%已经适得其反。