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)
我使用 PostgreSQL 遇到了同样的问题,并同意 @e4c5 的观点,即某些内置数据库方法最适合此问题。问题是您将所有数据加载到内存中,直到执行bulkCreate。如果您有一百万行,您可能会在执行之前就耗尽内存。即使如此,如果您使用async.cargo之类的东西将其排队,您仍然会等待数据库返回给您,而数据异步消耗您的所有内存。
我的解决方案是放弃sequelize来加载数据(至少在他们实现流或其他东西之前(请参阅他们的github问题#2454))。我最终创建了db-streamer,但它现在只有 pg 支持。您需要查看mysql 的streamsql。
| 归档时间: |
|
| 查看次数: |
4432 次 |
| 最近记录: |