Jpa-sharding-jdbc(有git demo)

SpringBoot-Jpa-sharding-jdbc

测试sharding-jdbc分库和分表,只需引入jpa和sharding-jdbc依赖即可,确实对应用侵入很低。

我分别测试了两张表,分两个库,每个库一张表,做分表策略时一定要注意数据均匀分配,否则就会出现某些表中永远没有数据的情况

#这种配置就不满足我下面要说的情况,这种配置会导致,每个库中都必须存在冗余表,如果删除会报错
spring.shardingsphere.sharding.tables.user.actual-data-nodes=db$->{0..1}.user_$->{0..1}

我的想法: 两个db,db0,db1, db0的库分别存放user0,item0两张表,db1的库分别存放user1,item1两张表,于是有了下面的配置
在这里插入图片描述

spring.shardingsphere.sharding.tables.user.actual-data-
nodes=db0.user_0,db1.user_1
spring.shardingsphere.sharding.tables.item.actual-data-
nodes=db0.item_0,db1.item_1

这样搭配如下的策略就能保证每个表都是均匀存放数据

# db和table的算法是一样的所以当db = 0 时 表也为0
spring.shardingsphere.sharding.tables.user.table-strategy.inline.algorithm-
expression=user_$->{user_id % 2}
spring.shardingsphere.sharding.tables.item.table-strategy.inline.algorithm-
expression=item_$->{item_id % 2}

spring.shardingsphere.sharding.tables.user.database-strategy.inline.algorithm-
expression=db$->{ user_id % 2}
spring.shardingsphere.sharding.tables.item.database-strategy.inline.algorithm-
expression=db$->{ item_id % 2}

然后测试了一下jpa手写sql,leftjoin查询,也是没问题的
在这里插入图片描述
如上的小demo放在github上提供下载,sql脚本也有,只需要执行sql改下配置文件mysql密码即可使用

点我跳转到demo下载

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值