SuperAPI AI 工具集

sql-optimization-patterns

数据与分析

查看项目

更新于 10-16 05:51

技能介绍

用途:系统化地把慢查询改造成更快操作,覆盖执行计划分析、索引设计、查询重写、分页、聚合、批量写入与运维监控等环节。适用于排查慢查询、设计高性能库表结构、优化应用响应时间、降低数据库负载与成本、应对数据量增长的扩展性问题,以及解决 N+1 查询。

主要能力:一是 EXPLAIN 分析,使用 EXPLAIN、EXPLAIN ANALYZE、EXPLAIN (ANALYZE, BUFFERS, VERBOSE) 观察 Seq Scan、Index Scan、Index Only Scan、Nested Loop、Hash Join、Merge Join、Cost、Rows、Actual Time 等指标。二是索引策略,涵盖 B-Tree、Hash、GIN、GiST、BRIN,以及复合索引、部分索引、表达式索引、覆盖索引(INCLUDE)与全文检索、JSONB 索引,并强调复合索引列顺序与索引写入代价。三是查询模式优化,包括避免 SELECT *、让 WHERE 可用索引、优化 JOIN、消除 N+1、游标分页替代大 OFFSET、高效 COUNT 与 GROUP BY、相关子查询改写为 JOIN 或窗口函数、使用 CTE、批量 INSERT/UPDATE 与 COPY。四是高级手段,如物化视图及其 REFRESH(含 CONCURRENTLY)、按范围分区、查询提示与并行查询设置。五是维护与监控,包括 ANALYZE、VACUUM、REINDEX,以及用 pg_stat_statements 找慢查询、用 pg_stat_user_tables 找缺索引、用 pg_stat_user_indexes 找未使用索引。

使用方式:技能以指导文档与检查清单形式提供,包含 references 下的 PostgreSQL、MySQL 优化指南与查询计划分析文档,assets 下的索引策略与查询优化清单,以及 scripts/analyze-slow-queries.sql、scripts/index-recommendations.sql 脚本。需要结合实际数据库执行示例 SQL 并依据执行计划结果判断,具体安装方式与运行环境要求暂未提供。

适用场景:后端性能调优、数据库 schema 评审、报表与分析查询提速、大批量数据导入导出、线上慢查询治理。

限制:示例以 PostgreSQL 为主,部分写法(如 COPY、REFRESH MATERIALIZED VIEW CONCURRENTLY、pg_stat_* 视图、BRIN)为 PostgreSQL 特有,跨数据库需谨慎;未提供支持数据库的完整版本范围、价格与收费信息、许可证及效果量化数据。