MyShardingSql基于 Mybatis+ 插件技术实现的分库分表

联合创作 · 2023-09-30 20:55

基于Mybatis+插件技术实现的分库分表技术,总体思想是使用Range范围+哈希取模 实现分库分表,降低表内记录数提升性能

关于Mybatis参数

1)支持设置sql执行超时时间

2)localCacheScope参数设置为STATEMENT而非SESSION

分库分表功能

单sql+包含分片键 (自动提交) -支持以下功能
1)Select|Insert|Update|Delete 
2)sql内任意多个表的Join操作 [不建议太多表的join]
3)sql类型无任何限制 
4)sql支持分片内部的读写分离 
5)从数据库的轮询实现负载均衡

单sql+不包含分片键(自动提交)(不支持) 
1)必须要有分片键

多sql+包含分片键(手动提交)  -支持以下功能
1)支持事务 
2)支持事务内的任何CRUD 
3)sql类型无限制

指定分片键

分片键支持2种类型

1)xml内部的sql占位符,使用SqlField注解

2)函数的参数下标直接指定,使用ParameterIndex注解

设计缺点

1)数据量越来越大时,配置越多,需要创建的数据源也越多

2)内部只支持Range和哈希取模 2种分库分表

浏览 12
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报