---
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');

发表评论 取消回复