PostgreSQL分区表相关

分区表是采用表继承的方式来实现的,主表中不存放任何的数据。
分区表中插入数据可以依赖触发器、也可以使用PG中的rule(规则)

但使用规则有如下的缺点:
(1)相比于触发器,该规则有显著的开销,而且每次检查是都会有此开销。不过,批量插入时只会有一次开销,所以在批量插入的情况下,去其相对于触发器更有优势。然后在更多的情况下,触发器的方法更好一些。
(2)如果想用COPY插入数据,由于COPY不会触发“规则”,因此先得把要复制的数据直接COPY到分区表(不是主表)。不过,COPY是会触发触发器的,所以用触发器的方法就可以正常使用。
(3)如果插入数据是在规则设置之外的,那么会插入到主表中。如果此时希望直接报错,而不是把数据插入到主表中,使用规则是无法实现的。


打开排除约束(constraint_exclusion)是一种查询优化技巧。在PG9.2.4中,参数constraint_exclusion默认就是partition,如果采用默认值,在SQL查询中将WHERE语句的过滤条件与表上的CHECK条件进行对比,就可得知不需要扫描的分区,从而跳过相应的分区表,性能也就得到了提高。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值