我的 API 调用之一可能会导致大量对象(Django 模型)的更新。我遇到了性能问题,因为我单独更新每个项目,保存并继续下一个:
for item in Something.objects.filter(x='y'):
item.a="something"
item.save()
有时我的过滤标准看起来像“where x in ('a','b','c',...)”。
看来官方对此的回答是“不会修复” http://code.djangoproject.com/ticket/661。我想知道人们在这些场景中使用什么策略来提高性能。
您链接到的票证用于批量创建 - 如果您不依赖于覆盖的票证save
方法或保存前/保存后信号在保存时执行一些工作,QuerySet has an update method http://docs.djangoproject.com/en/dev/topics/db/queries/#updating-multiple-objects-at-once您可以使用它来执行UPDATE
在过滤后的行上:
Something.objects.filter(x__in=['a', 'b', 'c']).update(a='something')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)