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,对于业务逻辑而言其实是没有代码修改的,主要是数据源的配置以及分片配置、读写分离配置等。

在官方文档之中也是有例子的:使用手册

分表所要考虑和处理的问题

posted @ 2020-08-17 16:41  江舟  阅读(464)  评论(0)    收藏  举报