基于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种分库分表