这样做有意义吗?
if Model.objects.filter(...).exists():
c = Model.objects.filter(...).count()
数据库的价格低于此吗?
c = Model.objects.filter(...).count()
我正在考虑在数据库上花费的时间。欢迎您的意见。
答案 0 :(得分:2)
如果对象确实存在,则执行两个查询的效率低于执行一个查询。
如果没有对象存在,我无法想到为什么exists()
明显快于count()
。
所以我会坚持:
c = Model.objects.filter(...).count()
首先执行exists()
的一个缺点是,当c
返回exists()
时,您尚未设置False
。如果你不小心,这可能导致NameError
。