Django 慢查询:将 django 过滤语句连接到数据库日志中的慢查询

Posted

技术标签:

【中文标题】Django 慢查询:将 django 过滤语句连接到数据库日志中的慢查询【英文标题】:Django slow queries: Connect django filter statements to slow queries in database logs 【发布时间】:2012-02-28 08:17:47 【问题描述】:

如果您尝试诊断 mysql 后端中的慢查询并使用 Django 前端,您如何将后端报告的慢查询与 Django 前端代码中的特定查询集联系起来?

【问题讨论】:

【参考方案1】:

我认为除了记录可疑查询集的每个 django 查询之外,您别无选择。

请参阅this answer,了解如何访问给定查询集的实际查询。

【讨论】:

【参考方案2】:

如果您安装django-devserver,它将显示正在运行的查询以及在使用 runserver 时它们在您的 shell 中花费的时间。

另一种选择是django-debug-toolbar,它会在您网站的侧面板叠加层中执行相同的操作。

无论哪种方式,您都需要在您的开发环境中对其进行测试。但是,两者都没有真正解决直接将您定位到有问题的查询的问题。他们根据每个请求工作。因此,您必须稍微考虑一下您的哪些视图使用数据库最多和/或处理异常大量的数据,但是通过挑选可能的候选视图并检查时间查询要在这些页面上运行,您应该能够掌握哪些特定查询最差。

【讨论】:

以上是关于Django 慢查询:将 django 过滤语句连接到数据库日志中的慢查询的主要内容,如果未能解决你的问题,请参考以下文章

django count(*) 慢查询优化

Django 数据库操作

Django中模型

django模型系统

django基础知识之模型查询:

将 Django 过滤器转换为 RAW SQL 查询 [重复]