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

时间:2015-10-03 03:49:57

标签: mysql node.js sequelize.js

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

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

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

1 个答案:

答案 0 :(得分:0)

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

我的解决方案是放弃sequelize以加载数据(至少直到他们实现流式传输或其他东西(参见他们的github issue #2454))。我最终创建了db-streamer,但它现在只有pg支持。你需要查看streamsql的mysql。