postgresql10以上的自动分区分表功能

Posted 疯子加天才

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了postgresql10以上的自动分区分表功能相关的知识,希望对你有一定的参考价值。

一.列分表

1.首先创建主分区表:

create table fenbiao(
id int,
year varchar
) partition by list(year)
这里设置的是根据year列进行数据分表;创建后使用navicat是看不到的;

2.创建分表:

create table fenbiao_2017 partition of fenbiao for values in (‘2017‘)
create table fenbiao_2018 partition of fenbiao for values in (‘2018‘)
这样这两天数据会依靠规则插入到不同分表中,如果插入一条不符合规则的数据,则会报错误:no partition of relation "fenbiao" found for row.

 

二.范围分表

1.以year列为范围进行分表

create table fenbiao2(
id int,
year varchar
) partition by range(year)
2.创建分表


create table fenbiao2_2018_2020 partition of fenbiao2 for values from (‘2018‘) to (‘2020‘)

create table fenbiao2_2020_2030 partition of fenbiao2 for values from (‘2020‘) to (‘2030‘)
注意:此时插入year=2020会插入到下面的表;如下面表范围为2021到2030,则会报错;同时插入2030也会报错;范围相当于时a<=year<b;

 
————————————————
版权声明:本文为CSDN博主「myth_gy」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/myth_g/article/details/83748066

以上是关于postgresql10以上的自动分区分表功能的主要内容,如果未能解决你的问题,请参考以下文章

postgresql partition分表的总结

使用PostgreSQL插件pg_pathman对超大表分表的实践

PostgreSQL 11中具有自动分区创建功能的表分区?

PostgreSQL:自动删除旧分区

PostgreSQL分区表(partitioning)应用实例

python 简单的帮助器,支持Postgresql 10的声明性分区功能。