Sharding-JDBC
Sharding-JDBC是ShardingSphere的一个子项目,使用数据库路由来进行分库分表。ShardingSphere的官方文档地址为:http://shardingsphere.apache.org/index_zh.html
具体的细节参考官方文档学习。
文档总结
概念
逻辑表,真实表,绑定表,广播表,分片键,
分片算法:
精确分片 单一键 =, IN
范围分片 单一键 BETWEEN, >, <, >=, <=
复合分片 多键
Hint分片
内核
单数据库的内核执行过程通常是
解析 --> 优化器 --> 执行器
而分片的中间件
解析引擎 --> 路由引擎 --> 改写引擎 --> 执行引擎 --> 归并引擎
所以分片中间件主要多出来的就是 路由,改写,归并
路由

其实实际运用的主要是分片路由,广播路由中只有全库表路由常用
改写

这里有个处理分页的技巧:
越获取偏移量位置靠后数据,使用LIMIT分页方式的效率就越低。 有很多方法可以避免使用LIMIT进行分页。比如构建行记录数量与行偏移量的二级索引,或使用上次分页数据结尾ID作为下次查询条件的分页方式等。
执行
执行主要了解下 链接模式的分类, 内存限制模式、链接限制模式

归并

实践例子
实践的例子参考:https://github.com/TaXueWWL/snowalker-shardingjdbc-demo
直接参考其中的入门例子就可以了,无论是使用原生的jdbc还是Springboot集成sharding-jdbc,对于业务逻辑而言其实是没有代码修改的,主要是数据源的配置以及分片配置、读写分离配置等。
在官方文档之中也是有例子的:使用手册
分表所要考虑和处理的问题


浙公网安备 33010602011771号