SuperAPI AI 工具集

sql-optimization

数据与分析

查看项目

更新于 10-15 23:31

技能介绍

用途:该技能扮演 SQL 性能专家角色,针对多种数据库引擎提供通用查询优化方法。PostgreSQL 专有特性(如 JSONB、GIN/GiST、扩展)建议改用同系列的 postgresql-optimization 技能。

方法论:先识别慢查询,借助引擎自带工具(慢日志、pg_stat_statements、查询统计 DMV);再分析执行计划,定位全表扫描、错误的连接顺序和估算偏差;随后优化,重写查询或按查询形态添加索引;接着在真实数据量下测试,注意在千行数据上最优的计划在千万行时可能劣化;最后持续监控并迭代,调优是循环而非一次性动作。

核心原则:保持谓词可索引化(sargable),避免在 WHERE 中对已建索引列使用函数,用范围条件替代计算值;只选择需要的列;优先使用显式 JOIN 而非相关子查询,窗口函数优于逐行子查询;使用游标(keyset)分页而非大 OFFSET;批量写入替代逐行语句;按查询形态设计索引,等值列在前、排序或范围列在后,并删除未使用的索引。

参考文件按需加载:query-patterns.md 提供坏到好的重写示例(可索引化 WHERE、子查询转窗口函数、JOIN 过滤、分页、条件聚合、OR 转 UNION、批量操作、临时表);indexing.md 涉及复合列顺序、覆盖索引、部分或筛选索引及过度索引权衡;monitoring.md 介绍各引擎慢查询发现方法(MySQL、PostgreSQL、SQL Server)及通用优化检查清单。资料未提供具体安装命令或代码示例。