PostgreSQL 查询优化实战

背景

线上一个 API 响应时间从 200ms 缓慢增长到 3.2 秒。排查发现是一条较复杂的 SQL 查询。这篇文章记录了从发现慢查询到最终优化的完整过程。

第一步:找到慢查询

PostgreSQL 的 pg_stat_statements 扩展可以记录所有查询的执行统计:

从统计视图开始,按平均耗时降序排列,很快就能定位到问题查询。