psql分区表简单例子
主表
本地psql10.10 ,因为目前使用的阿里云psql的rds是10.10 ,所以目前就是用10.10的版本。
分区表的意义就是相当于把一个大表分成了很多个个小的子表,也方便了进行按一定间隔的增加和删除的效率。行成一种逻辑上一体。物理上分开的表组织结构。
psql有几种分区的方式:
LIST PARTITION
RANGE PARTITION(本文只演示这种)
HASH PARTITION(11以上)
MULTILEVEL PARTITION (多级组合类型)
create table main_partition (id int, update_date timestamp without time zone) partition by range(update_date);
#把这个日期列作为分区依据
从表
create table sub_partition_2020_2021 partition of main_partition for value from ('2021-01-01') to ('2022-01-01');
#这儿默认是以主表的分区列作为value的 range划分,是[2021-01-01,2022-02-02) ,左边闭,右边开的区间。
ps:插入的时候插入主表就可以,不过子表之前的范围不可以有重叠,主表插入的范围还没创建的时候会出错。这儿插入操作会子自动按照范围分发到对应范围的子表中去。
建表可以通过脚本来进行创建的操作。
总结
小案例,具体查看官方文档和下方其他几种类型的
https://www.postgresql.org/docs/10/ddl-partitioning.html
https://www.enterprisedb.com/postgres-tutorials/how-use-table-partitioning-scale-postgresql