在续集中插入百万条记录的最佳方式是什么

Dev*_*Dev 5 mysql node.js sequelize.js

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

那么你认为有办法做到吗?

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

Eva*_*oky 2

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

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