在 Django 中,在 values() 之前使用 exclude() 实际上对性能更好还是只是一个神话?

问题描述 投票:0回答:1

在 Django QuerySet 中,在查询时,在查询中的 values() 之前使用 exclude() 真的更好吗?

例如:

query_obj = TestModel.objects.values().exclude(somefield='somevalue')

这是正确的方法还是,

query_obj = TestModel.objects.exclude(somefield='somevalue').values()

这个?

或者两者的工作方式相同?

python django django-models django-queryset
1个回答
0
投票

调用

Model.objects
还没有执行查询。因此,如果您以
values()
开头,那么它适用于表格中的所有条目。然后执行
exclude()
,不查询数据库。

如果您以

exclude()
开始,那么第一次数据库调用会被排除的对象减少。
values()
之后已经在较小的 QuerySet 上执行了。它可能很有用,尤其是在数据库很大的情况下。

© www.soinside.com 2019 - 2024. All rights reserved.