被面试官质疑没看过sharding-jdbc的源码,当场给他从理论到实战掰扯清

在这篇文章中,我们将主要了解ShardingSphere进行分库分表的底层原理,并且深入到源码了解分库分表的实际运行过程。一方面,我们之前的文章中学习Sharding-JDBC时,积累了大量的测试实例,对于学习底层原理是非常好的学习入口。另一方面,也是为了后面学习ShardingProxy做准备。因为对于ShardingProxy,如果只是学会几个简单的配置和指令,是无法在实际工作中用好的,而ShardingProxy作为一个黑盒产品,要通过ShardingProxy来了解底层原理是比较困难的。

一、内核剖析

ShardingSphere虽然有多个产品,但是他们的数据分片主要流程是完全一致的。

       

        

二、解析引擎

解析过程分为词法解析和语法解析。词法解析器用于将SQL拆解为不可再分的原子符号,称为Token。并根据不同数据库方言所提供的字典,将其归类为关键字,表达式,字面量和操作符。再使用语法解析器将SQL转换为抽象语法树(简称AST,Abstract Syntax Tree)。

例如对下面一条SQL语句:

SELECT id, name FROM t_user WHERE status = 'ACTIVE' AND age > 18

会被解析成下面这样一颗树:     

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值