gpt4 book ai didi

python - Django annotate() 性能 - 它应该 super 慢吗?

转载 作者:太空宇宙 更新时间:2023-11-03 14:27:39 31 4
gpt4 key购买 nike

annotate() 让事情变慢是正常的吗?

像这样使用注释:

post_list = j.post_set.all().annotate(num_comments=Count('comment')).order_by('-pub_date')

使它比不做注释花费四倍的时间:

post_list = j.post_set.all().order_by('-pub_date')

我也用 values() 和 defer() 尝试过,但它们也没有帮助。将评论数量保留为 Post 表中的一个字段是唯一真正的选择吗?

顺便说一句,我正在使用 MySQL。

最佳答案

查看查询运行缓慢原因的一种方法是实际查看生成的 SQL。

最简单的方法是在 django shell 中执行:

>>> j.post_set.all().annotate(num_comments=Count('comment')).order_by('-pub_date')
>>> print j.query

您可能会发现重新排序链接的查询集方法可能会改变性能:

>>> j.post_set.order_by('-pub_date').annotate(num_comments=Count('comment'))

关于python - Django annotate() 性能 - 它应该 super 慢吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17517758/

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