PostgreSQL9.X版本与10.X版本表单分区解决方案对比

目录

 

●分区 or 分表

●大体思路对比

●注意事项

●二者异同

●9.X版本分区演示

●10.X版本分区演示

●小结


●分区 or 分表

这两个词经常会被初学者弄混,其实很好区别。分区指的是原本一张表单,逻辑上划分为几个区块,但是对于用户/开发者/程序员来说,操作的还是这个表单,在他们看来,就是一张表;分表指的是原本一张表单,物理上划分为几张表单,对于用户/开发者/程序员来说,操作的是多张表单,在他们看来,确实存在多张表。

分区和分表其实都是为了解决单表数据量过大导致的性能降低(通常,单表所占空间大于物理内存了,就应该考虑分区or分表了)。为了减少程序员开发难度,我们决定采用分区的方案,让表单的划分对程序员透明。PostgreSQL10.X之前的版本不支持原生分区,需要DBA人为实现。本文将给大家介绍二者的差别,并以一个小例子演示一下如何实现(假设我们为一个停车场建立数据库,管理车辆出入记录)。

 

●大体思路对比

9.X版本 10.X版本
  1. 创建主表;
  2. 创建分区(子表),并用INHERITS继承自主表;
  3. 对分区(子表)添加约束条件CONSTRAINT CHECK
  4. 对主表添加触发器,触发器的作用是在数据插入主表前进行拦截,并根据分区规则(例如按月份),插入到对应分区(子表)
  1. 创建主表,并用PARTITION BY RANGE指定为分区主表;
  2. 创建分区(子表),并用PARTITION OF指定为分区子表;
  3. FOR VALUES FROM TO对分区(子表)添加过滤规则(例如按月份)࿱
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值