【问题标题】:Read millions of small files and insert into mysql with Nodejs读取数百万个小文件并使用 Nodejs 插入 mysql
【发布时间】:2020-03-16 19:07:12
【问题描述】:

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

由于 SQL 查询,它需要内存高效和异步。

有什么见解吗?

【问题讨论】:

  • 最好展示一些你尝试过的东西,否则问题可能太模糊了。

标签: mysql node.js asynchronous data-science


【解决方案1】:

我猜您不是在创建应用程序,而是更多的是一次性迁移,对吧?

如果您打算让 NodeJS 一次读取所有内容并使用简单的 JS 循环插入数据库,您可能会遇到错误。

  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. 使用上述方法异步/同步插入它们。

这个实现完全取决于你如何嵌套每个读取和写入。

干杯

【讨论】:

    猜你喜欢
    • 2016-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-18
    • 1970-01-01
    • 2016-06-12
    • 1970-01-01
    相关资源
    最近更新 更多