我有以下一段代码
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。