Mysql分库分表和Shardingsphere-JDBC

分库分表使用背景和笔记

在这里插入图片描述

在这里插入图片描述


Shardingsphere-JDBC

引入依赖

略。

application-sharding-database.properties配置

这里设置了两个数据库ds0和ds1;sharding-database设置为:以id为主键:数据的id%2的值为存入数据库:即对于ID:奇数存ds1,偶数存ds0。

在这里插入图片描述

application.properties

引入application-sharding-database.properties,并且打印sql:spring.shardingphere.props.sql.show

在这里插入图片描述

实体类

序列化。

其中@GeneratedValue标签,是自动生成id的时候使用,手动的时候要去掉它。

在这里插入图片描述

Repository

继承即可。

在这里插入图片描述

随后生成的对象,只要调用它就可以了。

单元测试中

在这里插入图片描述

调用save方法存储即可。

在这里插入图片描述


自动生成器类

public class implements ShardingKeyGenerator :

在这里插入图片描述

在Comparable方法里面,返回:

return new SnowflakeShardingKeyGenerator().generateKey();

其中SnowflakeShardingKeyGenerator为实现接口ShardingKeyGenerator 中的final类。

在getType方法里面的返回值String,对应配置文件中的key-generator.type=SNOWFLAKE的值。


垂直分表

创建关联表:detail表;

设置detail分片键

跟id的sharding-database和主键自动生成器中的配置一样,其中detail里面的pid赋值时postition里面的id,保障在同一个库里面。

在这里插入图片描述

查询

在这里插入图片描述


水平分库分表

在这里插入图片描述

同样的设置实体类和repository。

配置

先根据company_id分库:同一个公司id奇或偶在一个库里面,再根据id的奇偶分表,同时配置实际使用的库表:sharding actual-data-nodes

在这里插入图片描述

此为视频笔记:LAGOUJIAOYU《MySQL分库分表编程实战》

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

长臂人猿

客官们众筹请博主喝杯奶茶吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值