SuperAPI AI 工具集

sql-optimization-patterns

数据与分析

查看项目

更新于 10-15 09:22

技能介绍

用途

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 的性能或生产环境安全性。