当前位置:  开发笔记 > 编程语言 > 正文

在Django中加速批量ORM操作的策略

如何解决《在Django中加速批量ORM操作的策略》经验,为你挑选了1个好方法。

我的一个API调用可能导致对大量对象(Django模型)的更新.由于我正在单独更新每个项目,保存并继续下一个项目,因此我遇到了性能问题:

for item in Something.objects.filter(x='y'):
    item.a="something"
    item.save()

有时我的过滤条件看起来像"x in('a','b','c',...)".

似乎官方的答案是"不会修复".我想知道人们在这些场景中使用什么策略来提高性能.



1> Jonny Buchan..:

您链接的票证用于批量创建 - 如果您不依赖于重写save方法或前/后保存信号来执行保存工作,您可以使用QuerySet一种update方法UPDATE对已过滤的行执行操作:

Something.objects.filter(x__in=['a', 'b', 'c']).update(a='something')

推荐阅读
吻过彩虹的脸_378
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有