【问题标题】:Slow Django Page - Doesn't Appear to be caused by SQL缓慢的 Django 页面 - 似乎不是由 SQL 引起的
【发布时间】:2019-11-18 00:57:03
【问题描述】:

我正在尝试调试一个缓慢的 Django 列表视图页面。该页面当前显示所有测试 (133),以及每个测试的最新结果。大约有 60,000 个结果,每个结果都与单个测试有 FK 关系。

我通过为每个测试选择最新结果并将其作为与我的测试查询相关的预取传递来优化了 SQL(我认为)。 Django Debug Toolbar 显示 SQL 耗时约 350 毫秒,但页面加载时间约为 3.5 秒。

如果我将列表视图限制为单个测试,则 SQL 约为 7.5 毫秒,页面加载约为 100 毫秒。

我没有从 S3 等获取任何东西,也没有渲染任何图像等。

所以我的问题是,什么可能导致缓慢?似乎是 SQL,因为随着结果集的增长,页面加载也会增加,但可能会呈现每个项目或类似的东西?任何有关下一步研究的指导将不胜感激。

【问题讨论】:

  • 您能打开profiling panel in Django Debug Toolbar 并告诉我们结果吗?它是 djdt 的一部分,但默认情况下未开启。一旦你打开它,它应该会向你显示更多有用的性能信息。

标签: sql django page-load-time django-debug-toolbar


【解决方案1】:

你可以强制执行你的 Django 查询集: test_list = list(your_queryset) 并在您的视图中返回简单文本 HttpResponse("return this string"), 然后您可以在不渲染的情况下检查时间。还有 Django 调试工具栏并减慢您的应用程序,也许是您的情况:https://github.com/jazzband/django-debug-toolbar/issues/910

【讨论】:

  • 谢谢 - 使用这个我可以看到 SQL 本身比 Djdt 显示的时间更长。
猜你喜欢
  • 1970-01-01
  • 2011-07-15
  • 2010-12-24
  • 2016-09-15
  • 1970-01-01
  • 1970-01-01
  • 2016-09-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多