发布于 2026-09-10T10:59:45.450083Z · Haki Benita · hakibenita.com

分区裁剪通常只在按分区键过滤时才生效,按别的列查就得扫遍所有分区。Haki Benita 给出的办法是用检查约束把数据分布告诉优化器:给每个分区上一条形如 session_id BETWEEN 1 AND 4320 的约束,优化器就能靠约束排除法把不相干的分区剪掉。遇到离群值可以写成析取形式的约束,思路借自 PG14 的多区间 BRIN 操作符类;找连续区间用 gaps and islands 那套写法。前提是数据只追加、且过滤列与分区键强相关。
分区裁剪通常只在按分区键过滤时才生效,按别的列查就得扫遍所有分区。Haki Benita 给出的办法是用检查约束把数据分布告诉优化器:给每个分区上一条形如 session_id BETWEEN 1 AND 4320 的约束,优化器就能靠约束排除法把不相干的分区剪掉。遇到离群值可以写成析取形式的约束,思路借自 PG14 的多区间 BRIN 操作符类;找连续区间用 gaps and islands 那套写法。前提是数据只追加、且过滤列与分区键强相关。
来源记录
- center.info_item · 8bdf3d1f35fc74c1 · 2026-10-03T04:08:35.169032Z
- pgweb.info_item · 8bdf3d1f35fc74c1 · 2026-10-03T04:08:55.967155Z