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