【问题标题】:Django Debug Toolbar Target?Django 调试工具栏目标?
【发布时间】:2016-03-06 00:52:05
【问题描述】:

我的网页加载速度很慢,所以我安装了 Django 调试工具栏。我对此很陌生,所以我想弄清楚我能用它做什么。

我可以看到数据库在 205 毫秒内完成了 264 次查询。看起来有点高我很确定我可以通过添加一些索引并编写更好的查询来减少它。但我的问题是:应该尝试在这里达到的“好”数字是什么?通常被认为“足够快”和进一步优化的东西并不值得。 50 毫秒? 20 毫秒?

同样在同一页面上,它显示用户 CPU 中的时间为 2500 毫秒。这对我来说听起来很糟糕,我很惊讶它比我认为是瓶颈的数据库高得多。这是否可能表明我试图在 python 代码中而不是在数据库层做太多事情?减少 SQL 查询的数量对 CPU 有帮助吗? (在查询之间等待?)。还有一些我应该瞄准的众所周知的目标响应时间。

我正在寻找我的客户的快速响应。现在,当我四处点击时,我会在页面加载之前感觉到“怀孕的停顿”。

【问题讨论】:

  • 我不确定开发服务器是否是对速度充满信心的最佳场所。不过,sql 查询可能会指导您创建更好的查询。设置另一个服务器(nginx/gunicorn),看看时间是否没有改善

标签: django django-models django-views django-debug-toolbar


【解决方案1】:

默认情况下,访问相关模型字段会导致每个模型每行一个额外的查询。查看select_related()prefetch_related(),这通常会减少查询次数并大大加快处理速度。我认为调试工具栏会向您显示实际查询,如果没有,则需要在进行任何查询优化之前启用 sql 日志。一旦将查询数量减少到最低限度(每个 pow 没有额外的查询),查找最慢的查询并使用 EXPLAIN sql 语法查看是否正在使用索引,这是另一个可能会变慢的领域,尤其是在大数据上。

通常数据库是瓶颈,除非您在代码中进行一些主要的循环。如果你认为 python 代码很慢,那么需要对其进行分析,否则只是猜测。

【讨论】:

    猜你喜欢
    • 2017-10-20
    • 2017-09-04
    • 1970-01-01
    • 1970-01-01
    • 2016-07-16
    • 2019-06-05
    • 2010-11-05
    • 2022-01-11
    • 2015-04-23
    相关资源
    最近更新 更多