发布于 2026-09-10T10:59:42.111424Z · Radim Marek · boringsql

Radim Marek 提醒 pg_stat_statements 不是查询仓库,而是共享内存里一张定长哈希表。由此有几处坑:queryid 按对象 OID 计算,跨大版本或重建表之后就会变,不能当持久主键;ORM 的别名、列表和 LIMIT 差异会把一条逻辑查询打散成上百行;条目数受 pg_stat_statements.max 限制,被淘汰的历史直接消失;mean_exec_time 是开机以来的平均,看不出 p99 毛刺。
Radim Marek 提醒 pg_stat_statements 不是查询仓库,而是共享内存里一张定长哈希表。由此有几处坑:queryid 按对象 OID 计算,跨大版本或重建表之后就会变,不能当持久主键;ORM 的别名、列表和 LIMIT 差异会把一条逻辑查询打散成上百行;条目数受 pg_stat_statements.max 限制,被淘汰的历史直接消失;mean_exec_time 是开机以来的平均,看不出 p99 毛刺。
来源记录
- center.info_item · f3ec28d411ab808d · 2026-10-03T04:08:35.169032Z
- pgweb.info_item · f3ec28d411ab808d · 2026-10-03T04:08:55.967155Z