SequoiaDB巨杉数据库表分区

在 SequoiaDB 集群环境中,可以通过将一个集合中的数据划分成若干不相交的子集,再将这些子集映射到另外的集合上,这种数据切分的方法称为表分区。这些不相交的子集称为分区,被数据划分的集合称为主集合,分区映射的集合称为子集合。

表分区示意图

 

  • 分区内的所有数据记录都是完整的记录
  • 一个分区只能映射到一个子集合中
  • 通过集合挂载操作,可以将分区从一个子集合中映射到另外一个子集合中
  • 当需要访问某个特定范围内的记录时,只会访问所属分区的子集合,避免访问所有分区数据,从而减少了数据访问量

分区方式

分区方式是指将集合中的数据划分为不同分区的算法。分区方式包括范围分区(Range)和散列分区(Hash)。

范围分区方式

范围分区方式是指根据集合数据的取值范围,对集合中的数据进行切分的分区方式。

范围分区方式示意图

 

通过范围分区方式,可以直观的了解到集合数据的分区情况。如上图所示,在201801到201901之间的数据落在分区1中,在201901到202001之间的数据落在分区2中。

范围分区方式较为典型的场景是访问一定范围内数据的场景。例如,当访问某一时间的段的记录时,数据库只会访问对应时间段的分区数据,而不会访问其他时间段的分区数据,从而大大减少了系统访问的数据量,并提高系统性能。

散列分区方式(Hash)

散列分区方式是指先对集合数据做一次散列运算,再按照散列运算结果的 hash 值对数据进行切分的分区方式。

 

散列分区方式示意图

 

在字段取值相对离散的情况下(如集合中的唯一键),通过散列分区方式,每个 hash 值对应的数据量基本相同。而在范围分区方式中,相同范围内的数据量不一定是相同的。

散列分区方式较为典型的场景是访问集合中所有数据的场景。例如,当遍历集合数据时,数据库就会访问所有分区的数据,可以发挥所有分区上各个节点的并行计算的能力。因为每个分区中的数据量基本相同,所以分区所在节点的 I/O 负载情况基本相同,不容易出现数据热点问题。

分区键

在不同的分区方式中,作为数据划分依据的字段称为分区键。在范围分区方式中,分区键是用于划分数据范围的字段;在散列分区中,分区键是用于计算 hash 值的字段。每个分区键可以包含一个或多个字段。

分区类型与分区方式的关系

不同的分区类型可以选择使用不同的分区方式去划分数据。数据库分区既可以使用范围分区方式,也可以使用散列分区方式,而表分区只能使用范围分区方式。

 

相关阅读

SequoiaDB 巨杉数据库分区原理数据库分区

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值