我想批量插入带有Sequelize ORM和NodeJS(NestJS(的MySQL。我很好奇是否有处理超大数据的最佳方法。我想到了";块";就像拉拉维尔一样。在Laravel,我们可以这样做:
$chunks = $insert_data->chunk(500);
foreach ($chunks as $chunk) {
DB::table('items_details')->insert($chunk->toArray());
}
有人用sequelize和NodeJS实现过这个吗。感谢
我想它几乎是一样的(使用lodash
来获取块(:
const _ = require('lodash');
const chunks = _.chunk(insert_data, 500);
for (const chunk of chunks) {
await ItemDetails.bulkCreate(chunk);
}
附言:根据您想要实现的目标,如果在插入任何块时出现错误,您可以使用事务插入所有块,也可以不插入任何块,或者使用try/catch
绕过或在失败后继续插入其他块。