读取数百万个小文件,并使用Node.js插入mysql

时间:2019-11-20 23:25:57

标签: mysql node.js asynchronous data-science

我已经尝试了很多方法,但是找不到一种高效且高效的方法来打开文件夹中的数百万个文件,然后使用nodejs将其内容插入数据库中。

由于SQL查询,它必须具有内存效率和异步功能。

有见识吗?

1 个答案:

答案 0 :(得分:0)

我想您不是在创建应用程序,而是一次迁移吗?

如果仅让NodeJS一次读取所有内容并使用简单的JS循环插入到DB,则可能会遇到错误。

  1. 您的数据库将因内存不足而挂起,或者由于一次连接过多而阻塞。
  2. NodeJS是轻量级的。它仅读取“数百万个文件”

我对这个模糊的问题的看法是,您需要控制插入:

您可以使用https://caolan.github.io/async/v3/之类的模块来帮助您使用async.eachSeries()async.waterfall()控制哪些呼叫是异步的还是同步的

您可以使用Nodejs的fs模块读取文件,该模块可以在https://www.tutorialspoint.com/nodejs/nodejs_file_system.htm

中找到

如果您无法控制NodeJS正在读取的文件,则可以。

  1. 读取一些文件,将其存储在JSON数组或对象的批处理中
  2. 使用上述方法异步/同步地插入它们。

此实现完全取决于您如何嵌套每次读取和写入。

欢呼