前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >「ShardingSphere」SQL 路由引擎

「ShardingSphere」SQL 路由引擎

作者头像
FoamValue
发布2020-10-09 14:42:12
6410
发布2020-10-09 14:42:12
举报
文章被收录于专栏:FoamValueFoamValue

数据分片的核心由SQL解析 => 执行器优化 => SQL路由 => SQL改写 => SQL执行 => 结果归并的流程组成。

一、路由

分布式数据库采用了分库分表的技术,将庞大的数据按不同的规则进行拆分,存储到不同的分库、分表之中。

当用户想要对数据进行筛选查询的时候,那必须根据分库分表的规则去不同的分库、分表中进行查询。

这样的查询被称为路由。当使用 SQL 携带分片键进行查询时,根据分批键的不同可以分为直接路由、标准路由,以及笛卡尔路由。而不携带分片键的SQL,则采用广播路由查询。

二、官方文档解释

直接路由,条件苛刻,需要使用 Hint 方式分片,并且只分库部分表。

标准路由,推荐使用的分片方式,适用不包含关联查询或仅包含绑定表之间关联查询的SQL。

笛卡尔路由,无法根据分片键定位,需要笛卡尔积的方式进行,查询性能最低。

全库路由,用于处理对所有真实表的操作。

全库表路由,用于处理对数据库的操作。

全实例路由,用于处理对数据库授权语句的操作。

单表路由,用于处理对某一真实表的操作。

阻断路由,用于屏蔽对数据库的操作。

三、测试代码

指定 Hint 进行直接路由查询。

四、总结

本周,先简述下 SQL 路由引擎的作用与测试代码。

对源码有兴趣的同学可以阅读 shardingsphere-route.jar 包。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-09-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FoamValue 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档