调试工具概览
| 工具 | 用途 | 使用时机 |
|---|---|---|
explain() | 查看执行计划 | 了解将要运行的 SQL |
| Profiler | 分析性能 | 找出慢操作 |
| 日志 | 查看执行细节 | 排查异常行为 |
快速决策矩阵
| 需求 | 工具 | 命令 |
|---|---|---|
| 查看执行计划 | explain() | ds.explain() |
| 评估性能 | Profiler | config.enable_profiling() |
| 调试 SQL 查询 | 日志 | config.enable_debug() |
| 以上全部 | 组合使用 | 见下文 |
快速设置
启用所有调试功能
explain() 方法
Query
Response
性能分析
Query
Response
日志
常见调试场景
1. 查询结果不符合预期
2. 查询执行缓慢
3. 了解引擎选择
4. 调试缓存问题
最佳实践
1. 在开发环境而非生产环境中调试
2. 运行大型查询前先使用 explain()
3. 先进行性能分析,再优化
4. 当结果有误时检查 SQL
调试工具汇总
| 工具 | 命令 | 输出 |
|---|---|---|
| 查看执行计划 | ds.explain() | 执行步骤 + SQL |
| 详细执行计划 | ds.explain(verbose=True) | + 元数据 |
| 查看 SQL | ds.to_sql() | SQL 查询字符串 |
| 启用调试 | config.enable_debug() | 详细日志 |
| 启用性能分析 | config.enable_profiling() | 耗时数据 |
| Profiler 报告 | get_profiler().report() | 性能摘要 |
| 重置 Profiler | get_profiler().reset() | 清除耗时数据 |
后续步骤
- explain() 方法 - 执行计划详解文档
- 性能分析指南 - 性能分析
- 日志配置 - 日志级别和输出格式设置