这个项目能做什么
django-query-optimizer 是一款旨在分析并优化 Django ORM 性能的工具。它能识别常见的数据库瓶颈,如 N+1 查询、重复的 SQL 执行以及慢查询,并提供具体的修复建议(例如使用 select_related() 或 prefetch_related())。
核心功能包括:
- 查询收集:一个线程安全的上下文管理器和 HTTP 中间件,用于捕获 SQL 查询、执行时长以及 Python 堆栈跟踪。
- 专项检测器:内置针对通用慢查询/重复查询、N+1 模式、ForeignKey 查找重复以及 DRF 序列化器特定 N+1 问题的分析功能。
- 集成点:
- Django Admin:一个用于查看会话列表和顶级慢查询的仪表盘。
- pytest:一个提供 `--query-analysis` 标志和 `query_collector` fixture 的插件,用于在测试中断言查询次数和性能。
- VS Code:支持 SARIF 2.1.0 输出,以便将诊断结果作为内联警告显示在编辑器中。
- 评分机制:一套健康评分系统(0-100)及等级评定(A-F),用于量化 ORM 效率。
该工具适用于开发环境,并提供公共 API,允许通过 QueryCollector 和 QueryAnalyzer 进行自定义分析。
评论
0 评分人数达到10人后显示
登录后参与讨论。