用途
SQL 优化模式用于诊断运行缓慢的 SQL 查询,并在不改变查询结果的前提下验证索引或查询改写是否有效。它面向以下任务场景:调试慢查询、设计高性能数据库模式、优化应用响应时间、降低数据库负载与成本、提升数据规模增长时的可扩展性、分析 EXPLAIN 查询计划、实现高效索引、解决 N+1 查询问题。
当任务与 SQL 优化模式无关,或需要该范围之外的领域或工具时,不应使用本技能。
主要能力
- 通过查询计划(query plan)诊断慢 SQL。
- 在优化前后保持查询结果一致,先比较结果集,再比较性能。
- 验证索引或查询改写是否针对代表性数据产生预期效果。
- 分析 EXPLAIN 查询计划。
- 实现高效索引。
- 处理 N+1 查询问题。
使用方式
使用前需确认:数据库引擎与版本、查询参数、预期行数、数据分布,以及被允许操作的环境。
操作原则:
- 从只读操作开始;在执行 DDL、数据变更、配置变更或维护操作之前,必须先获得授权。
- 先比较结果集,再比较性能。
- EXPLAIN ANALYZE 会实际执行语句:应使用经过批准的、具有代表性的数据,考虑函数与触发器的影响,并且不要假设事务回滚能撤销所有副作用。
- 记录观察到的执行计划、计时条件和正确性检查。
- 索引和查询改写是假设,而不是通用的提速手段。
如需详细示例,可打开 resources/implementation-playbook.md。
资源
- resources/implementation-playbook.md:包含详细模式与示例。
适用场景
- 调试运行缓慢的查询。
- 设计高性能数据库模式。
- 优化应用响应时间。
- 降低数据库负载与成本。
- 改善数据集增长时的可扩展性。
- 分析 EXPLAIN 查询计划。
- 实现高效索引。
- 解决 N+1 查询问题。
限制
- 仅在任务明确匹配上述范围时使用本技能。
- 不应将输出视为针对特定环境验证、测试或专家评审的替代品。
- 如果缺少必要输入、权限、安全边界或成功标准,应停止并请求澄清。
示例说明
实施手册(playbook)包含一个可执行的 SQLite 批量加载示例,使用绑定值并覆盖空输入情况。仓库测试将其与分页并列(pagination ties)和聚合等价性(aggregation equivalence)一起验证。SQLite 的正确性检查不能证明 PostgreSQL 的性能或生产环境安全性。