使用bulk_update与在django中更新相同的值相比,是否有性能上的好处?



我有以下一段代码

Subscription.objects.filter(id__in=[subscription.id for subscription in subscriptions]).update(renewal_notification_sent=True)

但是我想知道是否有类似

的东西
updatable_subscriptions = []
subs = Subscription.objects.filter(id__in=[subscription.id for subscription in subscriptions])
for sub in subs:
sub.renewal_notification_sent = True
updatable_subscriptions.append(
subs
)
# then
Subscription.objects.bulk_update(updatable_subscriptions, ["renewal_notification_sent"])

将有任何性能优势。调用filter之后的update使2数据库查询?

filter后跟update make 2查询。关于性能,bulk_update使用case进行sql更新,而update在后台进行简单的更新,对于更大的更新,最好使用bulk_update。

最新更新