↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

预备语句执行到第六次会悄悄换成通用计划 RSS

plan_cache_mode 默认取 auto:预备语句前五次用带参数值的定制计划,第六次才评估一份通用计划,只要通用计划的代价不高于定制计划的平均代价,本会话此后就固定用它。Richard Yen 用 pgbench 构造了 99.9% 取 Y、0.1% 取 N 的倾斜列:查 Y 时定制计划走顺序扫描,通用计划却按 50% 选择率估算而选了索引扫描,第六次之后永久切过去,于是同一条查询在数据没变的情况下突然变慢。数据分布越倾斜,这个坑越深。

发布于 2026-09-10T10:59:38.25668Z · Richard Yen · richyen.com
性能 计划缓存 预备语句

plan_cache_mode 默认取 auto:预备语句前五次用带参数值的定制计划,第六次才评估一份通用计划,只要通用计划的代价不高于定制计划的平均代价,本会话此后就固定用它。Richard Yen 用 pgbench 构造了 99.9% 取 Y、0.1% 取 N 的倾斜列:查 Y 时定制计划走顺序扫描,通用计划却按 50% 选择率估算而选了索引扫描,第六次之后永久切过去,于是同一条查询在数据没变的情况下突然变慢。数据分布越倾斜,这个坑越深。

plan_cache_mode 默认取 auto:预备语句前五次用带参数值的定制计划,第六次才评估一份通用计划,只要通用计划的代价不高于定制计划的平均代价,本会话此后就固定用它。Richard Yen 用 pgbench 构造了 99.9% 取 Y、0.1% 取 N 的倾斜列:查 Y 时定制计划走顺序扫描,通用计划却按 50% 选择率估算而选了索引扫描,第六次之后永久切过去,于是同一条查询在数据没变的情况下突然变慢。数据分布越倾斜,这个坑越深。

原始来源 ↗

来源记录
  • center.info_item · 7879f2ad5d31d82a · 2026-10-03T04:08:35.169032Z
  • pgweb.info_item · 7879f2ad5d31d82a · 2026-10-03T04:08:55.967155Z