shardingJdbc 基于分片边界的范围分片算法 BOUNDARY_RANGE的理解和详情 (五)

ShardingSphere 基于分片边界的范围分片算法 BOUNDARY_RANGE
这种分片算法适合存储分片范围不均衡的数据,如果每一个范围的数据要提升性能的话还可以 对该范围的数据在做分库的处理或者缩小分片范围分更多的表来处理

配置方式比较简单:以下下是一个完整的配置案例
#基于分片边界的范围分片算法

#打印sql
spring.shardingsphere.props.sql-show=true

#数据库的分库策略
spring.shardingsphere.rules.sharding.tables.m_user.database-strategy.standard.sharding-column=buMen
spring.shardingsphere.rules.sharding.tables.m_user.database-strategy.standard.sharding-algorithm-name=hash-mod
# 配置具体的分库规则(分库的字段+分库的算法=分库规则)这里是使用HASH_MOD的算法
spring.shardingsphere.rules.sharding.sharding-algorithms.hash-mod.type=HASH_MOD
spring.shardingsphere.rules.sharding.sharding-algorithms.hash-mod.props.sharding-count=2

#lcg_user表的分表的策略
spring.shardingsphere.rules.sharding.tables.m_user.actual-data-nodes=d$->{0..1}.m_user_$->{0..1}
#配置表的分片算法
spring.shardingsphere.rules.sharding.tables.m_user.table-strategy.standard.sharding-column=price
#这里的算法名称自己随便取-基于边界的范围分片算法
spring.shardingsphere.rules.sharding.tables.m_user.table-strategy.standard.sharding-algorithm-name=boundary-range

#BOUNDARY_RANGE 是内置的算法类型
spring.shardingsphere.rules.sharding.sharding-algorithms.boundary-range.type=BOUNDARY_RANGE
spring.shardingsphere.rules.sharding.sharding-algorithms.boundary-range.props.sharding-ranges= 41

# 配置lcg_user的id采用雪花算法生成全局id策略
spring.shardingsphere.rules.sharding.tables.m_user.key-generate-strategy.column=id
spring.shardingsphere.rules.sharding.tables.m_user.key-generate-strategy.key-generator-name=SNOWFLAKE

下边就配置做一个简单的介绍:

#type=BOUNDARY_RANGE 这是基于分片边界的范围分片算法
spring.shardingsphere.rules.sharding.sharding-algorithms.boundary-range.type=BOUNDARY_RANGE
#sharding-ranges 用来配置分片的范围 下列配置的意思是  [0-41) 分配到m_user_0 ,[41-无穷) 注意:这里的分片范围都是左闭右开的 分配到m_user_1
spring.shardingsphere.rules.sharding.sharding-algorithms.boundary-range.props.sharding-ranges= 41  

再举例:如果数据是分为三片的话可以如下的配置 [1-41) 存储到分片0 [41-101)存储到分片1 [101-无穷)存储到分片2

spring.shardingsphere.rules.sharding.sharding-algorithms.boundary-range.props.sharding-ranges= 41,101  

因为上述的配置案例采用的是分库分表的方式:所以数据的存储是下图的存储方式
在这里插入图片描述
根据图中所示:如果添加分库的话那么 基于分片边界的范围分片算法 的分片会把同一个范围的数据分到不同库中的相同的分片表中,他们的和等于该分片范围的大小

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值