能力缺口与基础门槛:别只停留在配置层面

很多做 Java 后端的人,在业务里用过 Sharding-JDBC,知道怎么配分片键、怎么写分库分表规则,但一旦线上出现慢查询定位不准、结果归并错乱、或者集成 Spring 事务报错,就完全抓瞎。这门课解决的就是这个断层:把 SQL 从进来到结果出去的完整生命周期拆开,看源码里每一步到底干了什么。它适合已经用过这个组件、能独立写分片规则、但对内部机制一无所知的人。如果你连分库分表的基本概念都没有,甚至没写过 MyBatis 或 JDBC 的原生代码,建议先去补这些前置基础,直接看源码会卡死在第一步。学源码不是为了背代码,是为了在遇到疑难杂症时,能顺着调用链路反推问题根源,而不是瞎猜瞎改。

学习顺序与资料配合:别按顺序硬啃,必须动手打断点

核心流程是整门课的骨架,建议先集中精力看 SQL 解析、路由、改写这三块。解析决定了你的逻辑 SQL 怎么被拆成语法树,路由决定了它去哪个库哪个表,改写决定了最终下发给数据库的语句长什么样。这三步看懂了,后面的执行和结果归并就是顺水推舟。Spring 集成那部分可以放最后,因为它是包装层,核心流程没吃透之前看集成只会觉得云里雾里。看源码的时候别只盯着视频跟着走,必须自己把对应版本的代码拉下来,在关键方法打断点,跟着视频的路径走一遍调用栈。资料里的分析线索是导航图,不是终点。建议自己搭一个本地多库环境,造几条分片数据,写几条跨库查询的 SQL,然后打断点跟一遍完整链路:从解析器拿到 SQL,到路由计算目标表,到改写后下发,再到结果归并返回。把这个链路自己跑通一次,比纯看十遍视频都管用。

学完产出与自检:能独立做什么,别假装看懂了

看完这套源码分析,你应该能独立回答几个硬问题:一条带分片键的 SQL 和不带分片键的 SQL,路由逻辑有什么本质区别?结果归并时,流式归并和内存归并分别在什么场景触发,为什么会抛出内存溢出?Spring 集成时,数据源是怎么被替换成代理对象的,事务怎么控制?如果这些答不上来,说明没看透,回头再过一遍。学完的产出不是一张证书,而是你能在没有现成答案的情况下,自己画出完整的调用链路图,定位到具体哪个类哪个方法出了问题。别假装看懂了,能自己画出链路图,才算真会。

课程目录

1-1 [课程介绍] 课程介绍(环境准备) (09:34)
2-1 [核心流程源码分析] 核心流程:sql解析 (11:18)
2-2 [核心流程源码分析] 核心流程:sql路由 (06:47)
2-3 [核心流程源码分析] 核心流程:sql改写 (07:01)
2-4 [核心流程源码分析] 核心流程:sql执行 (05:52)
2-5 [核心流程源码分析] 核心流程:结果归并 (06:32)
3-1 [和Spring集成源码分析] Spring集成原理 (02:48)
3-2 [和Spring集成源码分析] 旧版本源码分析 (03:15)