【问题标题】:Optimizing Django queries优化 Django 查询
【发布时间】:2011-10-08 01:18:24
【问题描述】:

我有一个页面,用户可以在其中查看特定产品的 cmets 列表。

在视图中,我得到了列表:

comments = product.comments.all().order_by('-timestamp')

以及模板中的这一段:

1   {% if comments %}
2       {% for comment in comments %}
3       <div class="comment">
4           <a href="/user/{{ product.author }}/">{{ comment.author }}</a>
5           <br>{{ comment.text }}
6       </div>
7       {% endfor %}
8   {% endif %}

当我转到产品页面时使用 django 调试工具栏,我可以看到 Django 执行了许多查询,列表中有许多 cmets。例如,在一个包含 10 个 cmets 的 cmets 列表的产品页面中,Django 执行大约 15 个查询。如果我提交新评论,查询数会增加到 16 个。

如果我尝试删除 {{ comment.author }}(第 4 行),如果我提交新的 cmets,查询会减少到固定数量。如何优化?

注意:comment.authordjango.contrib.auth.models.User 的外键

【问题讨论】:

  • 我不确定您是否需要担心这方面的优化,除非您期望每个产品有 100 或 1000 的 cmets。当你做这个查询时,你是否觉得获取那 10 个 cmets 花费的时间太长?

标签: django django-templates django-queryset


【解决方案1】:

【讨论】:

  • 是的,我刚刚找到了。太棒了!
猜你喜欢
  • 2012-03-19
  • 1970-01-01
  • 2018-04-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-15
  • 2016-07-15
相关资源
最近更新 更多