一起使用 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