随笔分类 - shardingSphere
摘要:执行之后的结果分为多个数据集,shardingSphere将这些结果集组合为一个新的结果集返回,这一步叫结果归并。 ShardingSphere 支持的结果归并从功能上分为遍历、排序、分组、分页和聚合 5 种类型,它们是组合而非互斥的关系。 从结构划分,可分为流式归并、内存归并和装饰者归并。流式归并
阅读全文
摘要:经过解析、路由、改写之后,shardingSphere已经确定好了当前这条SQL可以执行的所有数据节点,之后就会 根据不同的数据源获取真正的连接去执行SQL。它不是简单地将 SQL 通过 JDBC 直接发送至数据源执行; 也并非直接将执行请求放入线程池去并发执行。它更关注平衡数据源连接创建以及内存占
阅读全文
摘要:数据分片的核心流程第三步就是SQL改写,是由改写引擎完成的。其中包括正确性改写、和优化改写。 这是摘自shardingSphere官网的一张图片。 其中正确性改写将面向开发人员操作的逻辑表改写为通过路由后获取的真实表,如果有分库也需要改写为真实的数据源。除此以外还需要设计补列、分页信息修正等,用来保
阅读全文
摘要:sql路由作为数据分片的核心步骤在shardingSphere中由路由引擎来实现,通过解析引擎解析后的statement,提取关键的信息构建statementContext 为路由引擎提供支持。 我们从一条sql语句执行时去看看路由引擎如何路由的 public ResultSet executeQu
阅读全文
摘要:shardingshopere数据分片功能中的主要内核实现流程:sql解析->sql路由->sql改写->sql执行->结果归并 分别由解析引擎、路由引擎、改写引擎、执行引擎以及归并引擎实现。解析引擎作为实现数据分片功能 的第一步,为接下来的路由获取分片键condition做下基础工作。 首先我们进
阅读全文