【问题标题】:What is the best way to insert million record in sequelize在sequelize中插入百万记录的最佳方法是什么
【发布时间】:2015-12-31 08:18:36
【问题描述】:

使用 sequelize 插入一百万条记录的最佳方法是什么,目前我正在使用 bulkCreate,但它非常慢并且没有完成。

所以你认为有办法做到这一点。

return dbmyTable.bulkCreate(array, {transaction: t}).then(function (item) {
       return res.jsonp('Done');
})

【问题讨论】:

  • 将一百万条记录插入 mysql 的最好的,也许是唯一实用的方法是使用 LOAD DATA INFILE。
  • 一切皆有可能,但问题是它是否实用。

标签: mysql node.js sequelize.js


【解决方案1】:

我在使用 PostgreSQL 时遇到了同样的问题,并且同意 @e4c5 的一些内置数据库方法最适合此问题。问题是您将所有数据加载到内存中,直到 bulkCreate 执行。如果你有一百万行,你可能会在它执行之前耗尽内存。即使如此,如果您使用类似async.cargo 的方式将其排队,您仍将等待数据库回复您,同时数据异步消耗您的所有内存。

我的解决方案是放弃 sequelize 以加载数据(至少在他们实现流媒体或其他东西之前(请参阅他们的 github issue #2454))。我最终创建了db-streamer,但它现在只有 pg 支持。你会想看看streamsql 的mysql。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-10
    • 1970-01-01
    • 1970-01-01
    • 2014-03-25
    • 1970-01-01
    • 2021-08-07
    • 2011-04-26
    • 1970-01-01
    相关资源
    最近更新 更多