使用sequelize插入百万条记录的最佳方法是什么,目前我正在使用bulkCreate,但它很慢并且没有完成。
所以你认为有办法做到这一点。
return dbmyTable.bulkCreate(array, {transaction: t}).then(function (item) {
return res.jsonp('Done');
})
答案 0 :(得分:0)
我使用PostgreSQL遇到了同样的问题并同意@ e4c5,一些内置的数据库方法最适合这个。问题是您将所有数据加载到内存中,直到执行bulkCreate。如果你有一百万行,你甚至可能会在执行之前耗尽内存。即便如此,如果你使用类似async.cargo之类的东西排队,你仍然会等待数据库回复给你所有数据同时异步消耗你所有的内存。
我的解决方案是放弃sequelize以加载数据(至少直到他们实现流式传输或其他东西(参见他们的github issue #2454))。我最终创建了db-streamer,但它现在只有pg支持。你需要查看streamsql的mysql。