ShardingSphere-JDBC:数据分片实战篇
前言
本文主要是实现了一个基于JavaAPI调用ShardingSphere-JDBC实现数据分片 。
数据分片
数据分片是指按照某个维度将存放在单一数据节点中的数据分散地存放在多个数据节点或表中 , 来达到提升性能瓶颈以及可用性的目的 。
数据分片的核心手段就是对关系型数据库进行分库和分表 。
创建数据库和数据表
首先我们创建两个库 , 分别是ds0 , ds1 , 在ds0中创建一个表t_order0 , 在ds1中创建一个表t_order1 。
在表中有三个字段:
order_id , 订单编号 , 主键 , 用于分表策略的键
【ShardingSphere-JDBC:数据分片实战篇】user_id , 用户编号 , 用于分库策略的键
remarks , 备注
建表语句
CREATETABLE`t_order0`(
`order_id`bigintNOTNULLCOMMENT'订单号 , 主键',
`user_id`bigintNOTNULLCOMMENT'用户ID',
`remarks`varchar(50)COLLATEutf8mb4_german2_ciDEFAULTNULLCOMMENT'备注',
PRIMARYKEY(`order_id`)
)ENGINE=InnoDBDEFAULTCHARSET=utf8mb4COLLATE=utf8mb4_german2_ciCOMMENT='订单表';
CREATETABLE`t_order1`(
`order_id`bigintNOTNULLCOMMENT'订单号 , 主键',
`user_id`bigintNOTNULLCOMMENT'用户ID',
`remarks`varchar(50)COLLATEutf8mb4_german2_ciDEFAULTNULLCOMMENT'备注',
PRIMARYKEY(`order_id`)
)ENGINE=InnoDBDEFAULTCHARSET=utf8mb4COLLATE=utf8mb4_german2_ciCOMMENT='订单表';
测试数据
文章图片
文章图片
操作步骤
我们利用ShardingSphere-JDBC实现分库分表的操作步骤如下:
配置真实数据源
配置t_order表规则
配置分库策略
配置分表策略
配置分片策略
获取数据源
执行操作语句
引入Maven依赖
注意:示例代码的数据库连接池为Druid , 可根据业务场景更换为其他主流数据库连接池 。
文章图片
规则配置
ShardingSphere-JDBC的JavaAPI通过数据源集合、规则集合以及属性配置组成 。 以下示例是根据user_id取模分库,且根据order_id取模分表的2库2表的配置 。
文章图片
按照我们插入的参数“order_id=1&user_id=1”的条件 , 我们应该会查到ds1库t_order1的数据 , 测试数据如下:
文章图片
结果果然如此 , 说明我们做的这个小demo是ok的 , 下一篇文章我会带领大家深入源码 , 探究ShardingSphere-JDBC是如何做到分库分表的!
写在最后
好兄弟可以点赞并关注我的公众号“javaAnswer” , 全部都是干货 。
文章图片
- text|《2021大数据产业年度创新技术突破》榜重磅发布丨金猿奖
- 酷睿处理器|关键数据出炉,京东比阿里差远了
- 财智干货|数智化发展任重道远,财务中台提升数据服务价值 | 大数据
- 央媒表态后,联想关键数据出炉,柳传志这回要扳回一局?
- 数据库|OPPO悄悄上新机,骁龙8核+5000mAh电池,256G仅售1599元
- 数据仓库|红米真我moto三款骁龙870手机对比:2000元以内,谁更值得买?
- 中文|爱数智慧CEO张晴晴:基于”情感“的人机交互,要从底层数据开始
- B费全场数据:2次射正打入2球,3次抢断、1次拦截
- iPhone|东芝NAS硬盘N300系列+ORICO硬盘柜=“数据保险柜”
- 数据库|丁磊致歉“鱼眼观察”作者并回应:已撤回删稿函