---

title: PostgreSQL BRIN 索引与区间扫描优化实战

keywords: BRIN, pages_per_range, EXPLAIN ANALYZE, VACUUM, ANALYZE

description: 使用 BRIN 索引为大规模顺序时间列加速查询,合理设置 pages_per_range 并验证执行计划与性能。

tags:

  • ANALYZE
  • BRIN
  • EXPLAIN ANALYZE
  • PostgreSQL
  • VACUUM
  • pages_per_range
  • 性能
  • 数据库

categories:

  • 文章资讯
  • 技术教程

---

示例表与数据(时间序列):

CREATE TABLE events (
  ts timestamptz NOT NULL,
  uid bigint NOT NULL,
  payload jsonb NOT NULL
);

创建 BRIN 索引并设置分段大小:

CREATE INDEX idx_events_ts_brin ON events USING BRIN (ts) WITH (pages_per_range = 64);
VACUUM ANALYZE events;

范围查询与计划验证:

EXPLAIN ANALYZE SELECT * FROM events WHERE ts >= now() - interval '1 day' AND ts < now();

维护建议:

REINDEX INDEX idx_events_ts_brin;
VACUUM (VERBOSE, ANALYZE) events;

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部