gpt4 book ai didi

django - 在 Django 中,aggregate(Count()) 是否比 .count() 更快或更好?

转载 作者:行者123 更新时间:2023-12-04 03:33:53 25 4
gpt4 key购买 nike

Django 注释非常适合用于平均值、最小值/最大值等。它也可以用于计数。那么这是否会生成与我在查询集上使用较旧的 .count() 相同的 SQL?还是在某些情况下它会生成更高效的 SQL?或者更糟糕的SQL?

抱歉,澄清一下,我的意思是将 count() 操作与诸如 aggregate(Count('id')) 之类的操作进行比较,其中 id 是表的 PK。

因此,我相信布赖恩有正确的答案。简而言之,count() 只是aggregate() 的一个特例。

最佳答案

调用查询集的 .count()方法最终调用 Count() .

具体来说:django.db.models.QuerySet.count()电话django.db.models.sql.Query.get_count() , 调用django.db.models.sql.Query.add_count_column() ,这增加了django.db.models.sql.aggregates.Count到查询。

两者的主要区别在于,当您使用 Count 时直接,您指定要计算的字段,而当您调用 .count() 时在查询集上,这将导致 SELECT COUNT(*)... (除非您还使用 distinct() 或限制 select 子句中的字段,在这种情况下会更复杂)。

关于django - 在 Django 中,aggregate(Count()) 是否比 .count() 更快或更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7957569/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com