数据库中间件Zebra 分库分表源码分析02

本文深入探讨了Zebra数据库中间件在分库分表操作中的源码分析,包括SQL解析、重写过程、hint处理以及查询执行策略。针对多查询SQL,它会逐一进行重写,并通过executableCheck进行检查。对于带有orderBy和limit的单个查询,Zebra采用特殊策略进行数据获取,如拆分offset并进行count查询。在执行阶段,单个SQL将串行执行,而多个SQL则根据并行级别并行执行,确保高效的数据路由和处理。
摘要由CSDN通过智能技术生成

(21) 首先从SQLParsedResult获取statement,逻辑表和物理表放入到tableMapping;创建对应的重写visitor,然后调用重写,返回重写后的sql;重写sql完成后,处理一下hint语句,最后把结果放到routerResult。

(22) 如果是多查询的sql重写,如下

也是循环进行每个重写,返回对应的sql

1.5 执行executableCheck,进行检查

检查完成后,回到ShardStatement.executeQueryWithFilter方法

组装结果ShardResultSet

1.7 有orderBy和limit的单个查询,用切分成多个的方式进行数据获取

(1) 如果是单表查询,直接设置下限为0,并调用normalSelectExecute执行原始sql

(2) 根据sql解析出parseResult

(3) 根据路由数拆分offset,后面进行count 查询

1.8 普通查询直接调用normalSelectExecute

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值