【发布时间】:2013-07-05 06:16:14
【问题描述】:
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() ,但这些也没有帮助。将 cmets 的数量保留为 Post 表中的一个字段是唯一真正的选择吗?
顺便说一下,我正在使用 MySQL。
【问题讨论】:
-
I am using MySQL by the way.你的问题 ;) -
您能详细说明一下吗?有很多大网站使用 MySQL...
-
我在拿 MySQL 开玩笑,因为它有很多缺点和失败。是的,许多大型网站仍然使用 MySQL,但这并不意味着这是一个好的决定。见:grimoire.ca/mysql/choose-something-else
-
谢谢。我想现在切换到 Postgres 还为时不晚 :)
标签: python django database-design django-models django-orm