PostgreSQL分区表使用示例
1. 创建分区表
PostgreSQL 分区表支持 3 种类型,分别是 range 分区表、list 分区表和 hash 分区表。
1.1 创建 range 分区表
-- 创建分区父表 create table t(id int, name text, ts timestamp) partition by range(ts); -- 创建分区子表 create table t_p202210 partition of t for values from ('2022-10-01 00:00:00') to ('2022-11-01 00:00:00'); create table t_p202211 partition of t for values from ('2022-11-01 00:00:00') to ('2022-12-01 00:00:00'); -- 解除分区子表与父表的关联 alter table t detach partition t_p202211; -- 分区子表与父表创建关联 alter table t attach partition t_p202211 for values from ('2022-11-01 00:00:00') to ('2022-12-01 00:00:00');
1.2 创建 list 分区表
-- 创建 list 分区父表 create table t(id int, name text, logdate date) partition by list(logdate); -- 创建 list 分区子表 create table t_p20221001 partition of t for values in ('2022-10-01'); create table t_p20221002 partition of t for values in ('2022-10-02'); create table t_p20221003 partition of t for values in ('2022-10-03');
1.3 创建 hash 分区表
-- 创建 hash 分区父表 create table t(id int, name text, logdate date) partition by hash(id); -- 创建 hash 分区子表 create table t_p0 partition of t for values with (modulus 3, remainder 0); create table t_p1 partition of t for values with (modulus 3, remainder 1); create table t_p2 partition of t for values with (modulus 3, remainder 2);
2. 删除分区表
删除分区父表,子表也会一起被删除。
drop table t;
删除分区子表,父表和其他子表不会被删除。
drop table t_p202211;
3. 调整分区表父子关系
使用 alter table xxx detach 和 alter table xxx attach 语法进行分区表父子关系调整,见 1.1 节示例。
4. 多级分区表
PostgreSQL 支持创建多级分区表,详见链接:PostgreSQL 创建多级分区表
以上示例在 PG 13.3 版本上验证通过。
文章评论
共0条评论