pg10版本支持的内置分区:范围分区(range),列表分区(list),另外传统分区为触发器方式实现
为什么引入分区表
可以理解为分表,有这几种优势:
1、分区上顺序扫描提升性能,因为不会整体去扫描
2、可直接drop分区,delete分区是不一定清理数据的
3、使用分区表可以把数据放在不同磁盘上
使用分区表的时候要根据分区键来查询,才能提高效率,不使用分区键,会扫描所有子分区
重要参数:
constraint_exclusion:控制优化器,是否根据约束来优化查询
off:所有表不通过约束优化查询
partition:只对继承表和union all 子查询检查通过检索约束来优化查询
建议设置为partition
创建内置分区表
创建内置分区表的几个步骤:
1.创建父表,指定分区键和分区策略
2.创建分区,创建分区时须指定分区表的父表和子表的取值范围,注意分区键的范围不要有重叠
3.在分区上创建对应的索引,通常分区键上创建索引是必须的,非分区键的索引可以根据业务操作
创建内置分区表
指定分区策略为范围分区,分区键为create_time
postgres=# create table log_par (id serial ,user_id int4,create_time timestamp(0) without time zone) partition by range(create_time);
CREATE TABLE
创建分区,并设置分区的分区键范围
postgres=# create table log_par201706 partition of log_par for values from ( '2017-06-01') to ('2017-07-01')

最低0.47元/天 解锁文章
1329

被折叠的 条评论
为什么被折叠?



