---

title: PostgreSQL 声明式分区(RANGE)与月度分区维护实践

keywords: PARTITION BY RANGE, FOR VALUES FROM TO, DEFAULT partition, maintenance

description: 使用声明式 RANGE 分区实现按月分表与自动维护,示例包含创建、附加、查询与默认分区兜底策略。

tags:

  • DEFAULT partition
  • FOR VALUES FROM TO
  • PARTITION BY RANGE
  • PostgreSQL
  • maintenance
  • 分区
  • 数据库

categories:

  • 应用软件
  • 系统工具

---

创建分区主表:

CREATE TABLE events_part (
  id bigserial PRIMARY KEY,
  ts timestamptz NOT NULL,
  payload jsonb NOT NULL
) PARTITION BY RANGE (ts);

创建默认分区(兜底):

CREATE TABLE events_default PARTITION OF events_part DEFAULT;

创建月度分区:

CREATE TABLE events_2025_11 PARTITION OF events_part
FOR VALUES FROM ('2025-11-01') TO ('2025-12-01');

CREATE TABLE events_2025_12 PARTITION OF events_part
FOR VALUES FROM ('2025-12-01') TO ('2026-01-01');

查询与性能验证:

EXPLAIN ANALYZE SELECT count(*) FROM events_part
WHERE ts >= '2025-11-01' AND ts < '2025-12-01';

后续维护(新增分区示例):

CREATE TABLE events_2026_01 PARTITION OF events_part
FOR VALUES FROM ('2026-01-01') TO ('2026-02-01');

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部