【发布时间】:2021-01-24 16:36:38
【问题描述】:
我有一个在postgresql 数据库上使用typeorm 的更新查询,如下所示,它经常对20 多个项目的列表执行(每30 秒一次)。大约需要。更新需要 12 秒,这对于我的极限来说已经很长了。
for (item of items) {
await getConnection().createQueryBuilder().update(ItemEntity)
.set({status: item.status, data: item.data})
.whereInIds(item.id).execute();
}
是否可以在单个查询中执行这样的批量更新,而不是迭代其他项目?如果是这样 - 如何?
item.status 和 item.data 对于每个项目都是唯一的。
【问题讨论】:
-
当我遇到相同的行为时,我构建了一个常规 SQL 查询,通过一个查询更新所有项目,然后执行它。我相信这是最高效的方式。
标签: javascript postgresql orm typeorm