开发者学堂课程【全面讲解开源数据库中间件MyCat使用及原理(三):MyCat-架构剖析-核心技术之数据汇聚与排序实现】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/757/detail/13304
MyCat-架构剖析-核心技术之数据汇聚与排序实现
MyCat 数据汇聚与排序
通过 MyCat 实现的数据汇总与排序,不仅可以减少各个数据库分片与客户端之间的网络传输,也可以帮助简化应用程序的开发,从而使我们更加专注于业务代码、业务逻辑。
在 MyCat 当中,数据汇总与排序,思路为上图所示。
客户端——两个 MySQL 的分片和 MyCat ,当客户端应用程序,在 client 处发送一条 SQL 语句给 MyCat ,此时 MyCat 就要去查询这个数据.
比如,客户端在 client 处发送一条 SQL 语句—— select* from user order by userid, 此时需要查询用户表的数据,并且需要根据用户 ID 进行排序。
此时 MyCat 通过 SQL 路由,将此条 SQL 语句下发到下面所有的分片。这个时候这条 SQL 语句会分发到第一个分片,也会分发到第二个分片,这两个分片执行完 SQL 语句会将 user 处的结果返回。
user 执行的结果会直接返回给 MyCat 。 第二个分片也会将 user 表当中的结果集返回给 MyCat 。
MyCat 拿到结果集后,需要对结果集进行一个归类,还需要对结果集进行排序。
排序之后的样子就是这个样子,排序之后将排序之后的结果返回给 client 。