jbo*_*chi 9 sql django optimization django-orm
我知道通过查看connection.queries,可以在DEBUG打开时获取为当前请求/响应运行的所有SQL查询.在Django的调试工具栏还可以帮助开发了很多.
问题是我的生产服务器负载很高,我想记录每个视图正在执行的查询,这样我就可以优化首先创建更多查询的页面.
是否可以在不修改数据库驱动程序的情况下执行此操作
在 Django 1.3 中,我看到 class BaseDatabaseWrapperindjango/db/backends/__init__.py有一个属性use_debug_cursor。此类是django.db.connection表示默认数据库连接 ( docs )的对象的包装器。似乎将此属性设置为 true 会导致 Django 使用CursorDebugWrapperfrom django/db/backends/util.py,它记录它执行的所有查询,而不是 a CursorWrapper,后者不记录。
use_debug_cursorDjango 1.2 中不存在,这是我目前在这台机器上安装的,所以我现在无法测试它。如果我有几分钟的时间,我会尝试让一个虚拟的 1.3 项目开始测试这个......我很可能在这里过头了!
use_debug_cursorforce_debug_cursor在 Django 1.8 中更名为
| 归档时间: |
|
| 查看次数: |
1894 次 |
| 最近记录: |