优化nodejs mysql插入

我一直在为mongodb到mysql转换工作的ETL工具,这是在github这里主持mongodb到mysql的转换 。 目前在mongodb文档转换之后,插入查询被发送执行,但是插入速度最大为每秒600次插入。 在nodejs的mysql中插入query / sec是否有限制? 如果是的话再怎么增加呢? 否则有没有这个限制的框架? 整个转换的代码是在主转换代码 。

创build用于插入查询的数组是有限制的,因为所有文档都可以包含不同的键,这将在查询列名中产生差异。

(太长的评论)

我在代码中看到很多“沉睡”。 他们可能有很好的理由,但可能会影响插入率。

我看到一些代码,显然“批”行INSERT (到MySQL中)。 但是,有多less人在一起,这并不明显。 100-1000是最佳的。 (每次减less10倍;超过1000个则会进入“收益递减”状态, 可能导致与大规模相关的效率低下)。

什么是批量大小?

传输的行数是多less?

你确定放缓是在MySQL的一边,而不是Mongo的或NodeJ的?

这里的代码批量插入的事实是令人鼓舞的。 但根据我的经验,许多“框架”不考虑超出玩具大小的项目。

我们来看SHOW CREATE TABLE 。 有几件事情可能会影响插入速度。

在MySQL中使用键值数据的build议:不要拔出每个可能的列。 提取search和过滤最重要的列; 留下其余的JSON(或类似的)列应用程序来处理。 更多: http : //mysql.rjweb.org/doc.php/eav