Django 调试工具栏目标?

Django Debug Toolbar Target?

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

我可以看到数据库在 205 毫秒内执行了 264 次查询。看起来有点高大上。我很确定我可以通过添加一些索引并编写更好的查询来减少它。但我的问题是:什么是 "good" 应该试图打到这里的数字?什么被普遍接受为 "fast enough" 并且进一步优化并不值得。 50毫秒? 20 毫秒?

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

我正在寻找客户的快速响应。现在,当我四处点击时,我可以在页面加载前感觉到 "pregnant pause"。

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

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