sharding-JDBC 分库分表

演示项目数据库主从结构,读写分离,主数据库负责写入,从数据库负责读出.数据库设计 

  1. 数据库设计
    1. PRODUCT_DB 数据库进行水平分库PRODUCT_DB1,PRODUCT_DB2
    2. 商品信息表进行垂直拆分,商品信息表和商品描述表
    3. 商品信息表和商品描述表进行水平分表,商品信息表1,商品描述表1,商品信息表2,商品描述表2
    4. PRODUCT_DB ,STORE_DB 进行业务模块拆分,进行垂直分库
    5. 拥有公共表地理区域表(地理区域表需要在每个数据库中创建,shardingJDBC会同时维护所有数据库中公共表)


2.具体如何配置Sharding-JDBC

 配置数据源,m为主数据库,s为从数据库

m1.s1.m2.s2以此类推(注:m0,s0于上方dataSource.names中一一对应) 


 3.配置主从关系 

(注:m0,s0于上方dataSource.names中一一对应)


4.配置分库,分库配置只针对水平分库

   本例中只有PRODUCT_DB进行了水平分库,所以配置的是default-database-strategy

其他方式配置分库策略

tables.逻辑表名.database-strategy


 5.分表策略

因store_info 只有一张表,所以直接如下配置就行


ID主键的生成规则,使用雪花片的方式生成 


product_descript

algorithm-expression 根据product_info_id进行分片策略


绑定表关系,注绑定表关系是以数组形式配置的

因为product_info和product_descript是将一张表进行的垂直分表,所以两者是以product_info_id字段进行绑定的两者表

为什么要配置绑定关系,防止出现笛卡尔积现象 


公共表 配置

region是公共表,通过广播的方式保证数据一致性


 主从数据同步

通过mysql自带的binlog方式实现

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

进击的码码码码N

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值