定位慢查询#
- 开启慢查询日志:
log_min_duration_statement - 用
EXPLAIN ANALYZE分析执行计划 - 关注
pg_stat_statements统计高频 SQL
常见性能杀手#
- 全表扫描:缺少索引或查询条件无法命中索引
- 隐式类型转换:索引列上做函数运算导致索引失效
- N+1 查询:循环内逐条查询
- 大偏移分页:
OFFSET 1000000越翻越慢
优化手段#
- 改写 SQL:用小结果集驱动大表(
FROM顺序) - 合理利用索引:覆盖索引、复合索引
- 适当反规范化:预计算汇总表
小结#
SQL 调优的核心是理解执行计划。先定位瓶颈,再对症下药,避免盲目加索引。

