一起使用 exists() 和 count() 有意义吗?
Does using exists() and count() together make sense?
这样做有意义吗?
if Model.objects.filter(...).exists():
c = Model.objects.filter(...).count()
它的数据库成本比这个低吗?
c = Model.objects.filter(...).count()
我考虑的是花在数据库上的时间。欢迎您提出意见。
在对象确实存在的情况下,做两个查询比做一个效率低。
在没有对象存在的情况下,我不明白为什么 exists()
会明显快于 count()
。
所以我会坚持:
c = Model.objects.filter(...).count()
先做exists()
的一个缺点是当exists()
returns False
时你没有设置c
。如果您不小心,这可能会导致 NameError
。
这样做有意义吗?
if Model.objects.filter(...).exists():
c = Model.objects.filter(...).count()
它的数据库成本比这个低吗?
c = Model.objects.filter(...).count()
我考虑的是花在数据库上的时间。欢迎您提出意见。
在对象确实存在的情况下,做两个查询比做一个效率低。
在没有对象存在的情况下,我不明白为什么 exists()
会明显快于 count()
。
所以我会坚持:
c = Model.objects.filter(...).count()
先做exists()
的一个缺点是当exists()
returns False
时你没有设置c
。如果您不小心,这可能会导致 NameError
。