每张图解只讲一个系统。这一页把它们放回同一条链路:谁在谁上面、数据从哪流到哪、为什么要多这一层、多这一层付出了什么。另有六张「地基」图解(B+ 树与 InnoDB 索引、MySQL 事务、LSM-Tree、行级删除、Join 单机算法、JVM 堆与 GC),讲的是这些系统脚下的机制。
读前须知 · 需要你会:写 SQL(SELECT … JOIN … GROUP BY);Java 后端常识(线程池、HashMap、BlockingQueue、文件读写)。不需要:读过任何一张图解。读完这页你会:知道十九张图解分别讲什么、其中在链路里的各坐哪一层、先读哪张;能说清“一笔订单从业务库到报表经过哪些系统、每一层为什么存在、各付出什么代价”;拿到一个问题(怎么少读、怎么改一行、挂了怎么办、小文件、怎么原子提交)时,知道每一层各自怎么回答、去哪张图看细节。本页的链路是为了把其中九张图串起来设计的典型形态【本页设定】,不是公司的真实链路;十九张图的例子各自独立设计,数据都不是实测。
上 → 下是层级(上层用下层);左 → 右是数据的流向。点任意方块看它的身份卡;用步进条按顺序走一遍一笔订单的旅程。←/→ 键也能翻步。
窄屏下地图可以左右滑动查看全部。
按“后面的图要用到前面的结论”排:每张卡片写了它依赖哪几张。下划线颜色 = 它在地图上的层。
每一层都是为了解决下面那一层做不到的事,同时带来新的代价。四个最常被问到的“为什么不直接……”:
面试和排障里反复出现的五个问题。每一层给出的答案不一样,而且上层的答案往往建立在下层的限制上。最右列是去哪张图、哪个视图看细节(打开页面后在顶部切换视图)。
| 系统 | 它怎么做 · 代价 | 细节在哪 |
|---|
explain 输出。