1.5.0 MySQL(关系型数据库)与分库分表:知识图谱与复习路线
本页是 MySQL(关系型数据库)模块的唯一导航、迁移账本和验收入口。它不承载机制长正文,不使用 kb:knowledge 标记;具体结论只在 01 至 08 分册成稿后落地。
1. 入口职责、范围与使用方式
| 项目 | 约定 |
|---|
| 知识图谱编号 | 1.5.0,为 1.5.1 至 1.5.8 提供唯一迁移、依赖和验收依据 |
| 读者目标 | 你能按基础、原理、项目三条路线复习,并把机制、排障和项目话术连成一条证据链 |
| 不在本页展开 | InnoDB(事务存储引擎)内部机制、索引细节、事务细节、锁细节、日志细节、复制细节和分片实施细节 |
| 迁移原则 | 旧主文档的 88 道题一题一去向;同一题不跨分册复制;目标分册未创建前不得标记为“已改写”或“已链接” |
| 当前交付边界 | 仅建立路线、版本边界、图资产、项目映射、88 题台账和轻量验收基线;不修改旧主文档或进度看板 |
1.1 学习依赖总览
flowchart LR
A["01 InnoDB(事务存储引擎)页、行与 Buffer Pool(缓冲池)"] --> B["02 B+Tree(多路平衡树)索引与优化器"]
B --> C["03 事务隔离与 MVCC(多版本并发控制)"]
C --> D["04 锁体系与死锁"]
A --> E["05 undo log(回滚日志)、redo log(重做日志)、binlog(二进制日志)"]
C --> E
D --> F["08 线上排障、项目话术与综合题库"]
E --> G["06 复制、高可用与备份恢复"]
G --> H["07 分库分表与扩容迁移"]
B --> H
H --> F
E --> F
图中箭头表示“后者必须使用前者的结论”,不是并行写作顺序。你先理解数据页和访问路径,再解释快照读与锁范围;日志、复制和分片则把单库一致性扩展到恢复与容量演进。
1.2 存储知识树
flowchart TD
S["存储:InnoDB(事务存储引擎)"] --> S1["表空间、段、区、页、行"]
S --> S2["16 KiB(千字节)页:页头、页目录、记录堆、页尾"]
S --> S3["Buffer Pool(缓冲池)"]
S3 --> S31["Free List(空闲链表)"]
S3 --> S32["LRU(最近最少使用)链表"]
S3 --> S33["Flush List(刷盘链表)"]
S --> S4["Change Buffer(变更缓冲)"]
S --> S5["Doublewrite Buffer(双写缓冲)"]
S --> S6["Adaptive Hash Index(自适应哈希索引)"]
这棵树用于回答“数据为什么以页读写、热点为什么留在缓存、脏页为什么不能随意刷盘”。失败分支是缓存淘汰、脏页积压或写入中断;它们分别进入访问路径、检查点和恢复章节处理。
1.3 事务与并发知识树
flowchart TD
T["事务:ACID(原子性、一致性、隔离性、持久性)"] --> T1["隔离级别"]
T1 --> T11["Read Committed(读已提交)"]
T1 --> T12["Repeatable Read(可重复读)"]
T --> T2["MVCC(多版本并发控制)"]
T2 --> T21["DB_TRX_ID(事务标识)"]
T2 --> T22["DB_ROLL_PTR(回滚指针)"]
T2 --> T23["Read View(读视图)"]
T --> T3["当前读与锁定读"]
T3 --> T31["记录锁、间隙锁、临键锁"]
T3 --> T32["MDL(元数据锁)与死锁"]
本图把“读到什么版本”和“写入时锁住什么索引范围”分开。MVCC(多版本并发控制)只解决快照读可见性,不替代库存条件更新、唯一约束、状态机和对账。
1.4 日志、分片与排障知识树
flowchart TD
L["日志与扩展"] --> L1["undo log(回滚日志):回滚与版本链"]
L --> L2["redo log(重做日志):崩溃恢复"]
L --> L3["binlog(二进制日志):复制、归档与时间点恢复"]
L2 --> L4["两阶段提交与宕机判定"]
L3 --> L5["复制、高可用、备份恢复"]
L5 --> L6["分库分表:路由、全局 ID(全局唯一标识)、迁移"]
P["排障路径"] --> P1["慢 SQL(结构化查询语言)或延迟上升"]
P1 --> P2["执行计划、等待事件、日志与应用链路"]
P2 --> P3["索引/锁/刷脏/复制/分片热点"]
P3 --> P4["止血、验证、复盘与预防"]
L6 -.容量或路由异常.-> P3
L4 -.恢复异常.-> P3
排障先判断影响面,再保全证据;不要只因看到慢 SQL(结构化查询语言)就盲目加索引,也不要把锁范围扩大错误地解释为 InnoDB(事务存储引擎)自动锁升级。
2. 分册唯一职责与依赖
| 编号 | 目标文件 | 唯一职责 | 前置依赖 | 主要产出 |
|---|
1.5.1 | 01-InnoDB页行与BufferPool.md | 页、行、缓存与刷脏 | 无 | 存储与 I/O(输入输出)成本模型 |
1.5.2 | 02-B+Tree索引与优化器.md | 索引访问、统计信息与优化器 | 1.5.1 | 访问路径和慢查询证据模型 |
1.5.3 | 03-事务隔离与MVCC.md | ACID(原子性、一致性、隔离性、持久性)、隔离与版本可见性 | 1.5.1、1.5.2 | 快照读与当前读边界 |
1.5.4 | 04-锁体系与死锁.md | 锁范围、MDL(元数据锁)与死锁 | 1.5.2、1.5.3 | 并发写入和等待证据模型 |
1.5.5 | 05-undo-redo-binlog与崩溃恢复.md | 三类日志、提交协议与恢复 | 1.5.1、1.5.3 | 持久性、恢复与一致性边界 |
1.5.6 | 06-复制高可用与备份恢复.md | 复制、切换、备份与恢复演练 | 1.5.5 | 可用性与恢复目标模型 |
1.5.7 | 07-分库分表与扩容迁移.md | 路由、跨库约束、扩容迁移 | 1.5.1 至 1.5.6 | 容量演进与迁移回滚方案 |
1.5.8 | 08-线上排障项目话术与综合题库.md | 排障、项目表达与跨章口述 | 1.5.1 至 1.5.7 | 可复述的证据链和综合题库 |
3. 旧主文档迁移基线与 88 题唯一台账
3.1 基线登记与差异处理
| 指标 | 计划锁定基线 | 当前实测快照 | 迁移判定 |
|---|
| 行数 | 857 | 857 | 一致;文件长度仅作核对,不作为完成标准 |
| 字符数 | 62,613 | 27,625 | 不一致;保留计划历史值并记录当前快照,题目总数以逐题台账为准 |
知识型 ### 小节 | 21 | 21 | 一致 |
#### 热门面试题 组 | 21 | 21 | 一致 |
| 含“回答思路”的位置 | 83 | 83 | 一致;其中 63 道为章节题、20 道为旧综合题 |
| 旧版直接问答 | 5 | 5 | 对应旧 10.1 至 10.5 |
| 可迁移面试题 | 88 | 88 | 迁移台账必须 88/88,且不重不漏 |
| Mermaid(图表语法)图 | 5 | 5 | 目标分册重绘、解释并真实渲染 |
差异口径:62,613 是实施计划写入的历史迁移基线;27,625 是本次对现存旧主文档执行字符统计后的快照。后续若旧主文档被他人编辑,只重新记录快照,不覆盖历史基线,也不凭字符数增减推断题目是否迁移。
3.2 逐题唯一迁移台账
台账字段:稳定标识、原位置、题型、唯一目标文件、目标小节、改写状态、链接状态。当前 01 至 08 均未创建,因此全部为“待改写/待创建后链接”;这不是遗漏,而是本入口页的如实基线。
| 稳定标识 | 原位置 | 题型 | 唯一目标文件 | 目标小节 | 改写状态 | 链接状态 | | --- | --- | --- | --- | --- | --- | | 见下列 88 条 | 旧 3.1 至旧 10.25 | 88 道 | 01 至 08 | 按唯一职责分配 | 待改写 | 待创建后链接 |
1.5.1:InnoDB(事务存储引擎)页、行与 Buffer Pool(缓冲池)(8 道)
| 稳定标识 | 原位置 | 题型 | 唯一目标文件 | 目标小节 | 改写状态 | 链接状态 |
|---|
旧-3.1-Q1 | 旧 3.1 第 1 题 | 基础 | 01-InnoDB页行与BufferPool.md | 页、区、段与 I/O(输入输出)单位 | 待改写 | 待创建后链接 |
旧-3.1-Q2 | 旧 3.1 第 2 题 | 原理 | 01-InnoDB页行与BufferPool.md | 页结构与 B+Tree(多路平衡树)物理前提 | 待改写 | 待创建后链接 |
旧-3.1-Q3 | 旧 3.1 第 3 题 | 项目 | 01-InnoDB页行与BufferPool.md | WMS(仓储管理系统)库存热点页 | 待改写 | 待创建后链接 |
旧-10.6 | 旧 10.6 | 综合 | 01-InnoDB页行与BufferPool.md | 页为何是 I/O(输入输出)单位 | 待改写 | 待创建后链接 |
旧-10.14 | 旧 10.14 | 综合 | 01-InnoDB页行与BufferPool.md | Buffer Pool(缓冲池)热点页管理 | 待改写 | 待创建后链接 |
旧-10.15 | 旧 10.15 | 综合 | 01-InnoDB页行与BufferPool.md | 脏页、检查点与刷盘节奏 | 待改写 | 待创建后链接 |
旧-10.16 | 旧 10.16 | 综合 | 01-InnoDB页行与BufferPool.md | Change Buffer(变更缓冲)适用边界 | 待改写 | 待创建后链接 |
旧-10.17 | 旧 10.17 | 综合 | 01-InnoDB页行与BufferPool.md | Doublewrite Buffer(双写缓冲)与部分写 | 待改写 | 待创建后链接 |
1.5.2:B+Tree(多路平衡树)索引与优化器(10 道)
| 稳定标识 | 原位置 | 题型 | 唯一目标文件 | 目标小节 | 改写状态 | 链接状态 |
|---|
旧-3.2-Q1 | 旧 3.2 第 1 题 | 基础 | 02-B+Tree索引与优化器.md | 聚簇索引、二级索引与回表 | 待改写 | 待创建后链接 |
旧-3.2-Q2 | 旧 3.2 第 2 题 | 原理 | 02-B+Tree索引与优化器.md | 二级索引定位主键再回表 | 待改写 | 待创建后链接 |
旧-3.2-Q3 | 旧 3.2 第 3 题 | 项目 | 02-B+Tree索引与优化器.md | 订单查询的覆盖索引设计 | 待改写 | 待创建后链接 |
旧-3.3-Q1 | 旧 3.3 第 1 题 | 基础 | 02-B+Tree索引与优化器.md | 执行计划字段与访问路径 | 待改写 | 待创建后链接 |
旧-3.3-Q2 | 旧 3.3 第 2 题 | 原理 | 02-B+Tree索引与优化器.md | 统计信息、基数与成本估算 | 待改写 | 待创建后链接 |
旧-3.3-Q3 | 旧 3.3 第 3 题 | 项目 | 02-B+Tree索引与优化器.md | 履约轨迹慢查询证据链 | 待改写 | 待创建后链接 |
旧-10.1 | 旧 10.1 | 旧版直接问答 | 02-B+Tree索引与优化器.md | InnoDB(事务存储引擎)为何使用 B+Tree(多路平衡树) | 待改写 | 待创建后链接 |
旧-10.7 | 旧 10.7 | 综合 | 02-B+Tree索引与优化器.md | B+Tree(多路平衡树)范围查询 | 待改写 | 待创建后链接 |
旧-10.8 | 旧 10.8 | 综合 | 02-B+Tree索引与优化器.md | 聚簇索引与二级索引差异 | 待改写 | 待创建后链接 |
旧-10.9 | 旧 10.9 | 综合 | 02-B+Tree索引与优化器.md | 覆盖索引减少回表 | 待改写 | 待创建后链接 |
1.5.3:事务隔离与 MVCC(多版本并发控制)(18 道)
| 稳定标识 | 原位置 | 题型 | 唯一目标文件 | 目标小节 | 改写状态 | 链接状态 |
|---|
旧-4.1-Q1 | 旧 4.1 第 1 题 | 基础 | 03-事务隔离与MVCC.md | ACID(原子性、一致性、隔离性、持久性)边界 | 待改写 | 待创建后链接 |
旧-4.1-Q2 | 旧 4.1 第 2 题 | 原理 | 03-事务隔离与MVCC.md | 业务约束、锁、版本与日志协作 | 待改写 | 待创建后链接 |
旧-4.1-Q3 | 旧 4.1 第 3 题 | 项目 | 03-事务隔离与MVCC.md | 支付与库存的一致性闭环 | 待改写 | 待创建后链接 |
旧-4.2-Q1 | 旧 4.2 第 1 题 | 基础 | 03-事务隔离与MVCC.md | MVCC(多版本并发控制)解决的问题 | 待改写 | 待创建后链接 |
旧-4.2-Q2 | 旧 4.2 第 2 题 | 原理 | 03-事务隔离与MVCC.md | 版本链与 Read View(读视图)可见性 | 待改写 | 待创建后链接 |
旧-4.2-Q3 | 旧 4.2 第 3 题 | 项目 | 03-事务隔离与MVCC.md | 长事务与库存读模型 | 待改写 | 待创建后链接 |
旧-5.1-Q1 | 旧 5.1 第 1 题 | 基础 | 03-事务隔离与MVCC.md | 版本链元素 | 待改写 | 待创建后链接 |
旧-5.1-Q2 | 旧 5.1 第 2 题 | 原理 | 03-事务隔离与MVCC.md | 回滚指针沿链回溯 | 待改写 | 待创建后链接 |
旧-5.1-Q3 | 旧 5.1 第 3 题 | 项目 | 03-事务隔离与MVCC.md | 库存三版本可见性演绎 | 待改写 | 待创建后链接 |
旧-6.1-Q1 | 旧 6.1 第 1 题 | 基础 | 03-事务隔离与MVCC.md | 隔离级别现象 | 待改写 | 待创建后链接 |
旧-6.1-Q2 | 旧 6.1 第 2 题 | 原理 | 03-事务隔离与MVCC.md | 读视图创建时机 | 待改写 | 待创建后链接 |
旧-6.1-Q3 | 旧 6.1 第 3 题 | 项目 | 03-事务隔离与MVCC.md | 对账读一致性取舍 | 待改写 | 待创建后链接 |
旧-7.1-Q1 | 旧 7.1 第 1 题 | 基础 | 03-事务隔离与MVCC.md | 事务标识与版本 | 待改写 | 待创建后链接 |
旧-7.1-Q2 | 旧 7.1 第 2 题 | 原理 | 03-事务隔离与MVCC.md | T100、T101、T102 读视图演绎 | 待改写 | 待创建后链接 |
旧-7.1-Q3 | 旧 7.1 第 3 题 | 项目 | 03-事务隔离与MVCC.md | WMS(仓储管理系统)库存预占读写边界 | 待改写 | 待创建后链接 |
旧-10.2 | 旧 10.2 | 旧版直接问答 | 03-事务隔离与MVCC.md | MVCC(多版本并发控制)解决什么问题 | 待改写 | 待创建后链接 |
旧-10.10 | 旧 10.10 | 综合 | 03-事务隔离与MVCC.md | 版本可见性判断 | 待改写 | 待创建后链接 |
旧-10.11 | 旧 10.11 | 综合 | 03-事务隔离与MVCC.md | 读已提交与可重复读的读视图差异 | 待改写 | 待创建后链接 |
1.5.4:锁体系与死锁(19 道)
| 稳定标识 | 原位置 | 题型 | 唯一目标文件 | 目标小节 | 改写状态 | 链接状态 |
|---|
旧-5.2-Q1 | 旧 5.2 第 1 题 | 基础 | 04-锁体系与死锁.md | 记录锁、间隙锁与临键锁 | 待改写 | 待创建后链接 |
旧-5.2-Q2 | 旧 5.2 第 2 题 | 原理 | 04-锁体系与死锁.md | 索引记录与间隙范围 | 待改写 | 待创建后链接 |
旧-5.2-Q3 | 旧 5.2 第 3 题 | 项目 | 04-锁体系与死锁.md | 库存范围更新的并发边界 | 待改写 | 待创建后链接 |
旧-6.2-Q1 | 旧 6.2 第 1 题 | 基础 | 04-锁体系与死锁.md | 锁类型与兼容关系 | 待改写 | 待创建后链接 |
旧-6.2-Q2 | 旧 6.2 第 2 题 | 原理 | 04-锁体系与死锁.md | 隔离级别和当前读锁定范围 | 待改写 | 待创建后链接 |
旧-6.2-Q3 | 旧 6.2 第 3 题 | 项目 | 04-锁体系与死锁.md | 支付回调重复处理 | 待改写 | 待创建后链接 |
旧-7.2-Q1 | 旧 7.2 第 1 题 | 基础 | 04-锁体系与死锁.md | 键值区间与锁范围 | 待改写 | 待创建后链接 |
旧-7.2-Q2 | 旧 7.2 第 2 题 | 原理 | 04-锁体系与死锁.md | 范围当前读的锁定记录 | 待改写 | 待创建后链接 |
旧-7.2-Q3 | 旧 7.2 第 3 题 | 项目 | 04-锁体系与死锁.md | 无合适索引造成的阻塞扩大 | 待改写 | 待创建后链接 |
旧-7.3-Q1 | 旧 7.3 第 1 题 | 基础 | 04-锁体系与死锁.md | 死锁等待环 | 待改写 | 待创建后链接 |
旧-7.3-Q2 | 旧 7.3 第 2 题 | 原理 | 04-锁体系与死锁.md | 检测、牺牲者与回滚成本 | 待改写 | 待创建后链接 |
旧-7.3-Q3 | 旧 7.3 第 3 题 | 项目 | 04-锁体系与死锁.md | 统一加锁顺序与幂等重试 | 待改写 | 待创建后链接 |
旧-8.2-Q1 | 旧 8.2 第 1 题 | 基础 | 04-锁体系与死锁.md | 锁等待排查入口 | 待改写 | 待创建后链接 |
旧-8.2-Q2 | 旧 8.2 第 2 题 | 原理 | 04-锁体系与死锁.md | 长事务、MDL(元数据锁)与等待链 | 待改写 | 待创建后链接 |
旧-8.2-Q3 | 旧 8.2 第 3 题 | 项目 | 04-锁体系与死锁.md | 锁等待止血和同量级验证 | 待改写 | 待创建后链接 |
旧-10.4 | 旧 10.4 | 旧版直接问答 | 04-锁体系与死锁.md | MySQL(关系型数据库)锁会升级吗 | 待改写 | 待创建后链接 |
旧-10.18 | 旧 10.18 | 综合 | 04-锁体系与死锁.md | 间隙锁与临键锁防幻读 | 待改写 | 待创建后链接 |
旧-10.19 | 旧 10.19 | 综合 | 04-锁体系与死锁.md | MDL(元数据锁)阻塞 DDL(数据定义语言) | 待改写 | 待创建后链接 |
旧-10.20 | 旧 10.20 | 综合 | 04-锁体系与死锁.md | 死锁定位和规避 | 待改写 | 待创建后链接 |
1.5.5:undo log(回滚日志)、redo log(重做日志)、binlog(二进制日志)与崩溃恢复(10 道)
| 稳定标识 | 原位置 | 题型 | 唯一目标文件 | 目标小节 | 改写状态 | 链接状态 |
|---|
旧-4.3-Q1 | 旧 4.3 第 1 题 | 基础 | 05-undo-redo-binlog与崩溃恢复.md | 三类日志职责 | 待改写 | 待创建后链接 |
旧-4.3-Q2 | 旧 4.3 第 2 题 | 原理 | 05-undo-redo-binlog与崩溃恢复.md | 写入、刷盘与两阶段提交 | 待改写 | 待创建后链接 |
旧-4.3-Q3 | 旧 4.3 第 3 题 | 项目 | 05-undo-redo-binlog与崩溃恢复.md | 支付入账持久性与恢复 | 待改写 | 待创建后链接 |
旧-8.3-Q1 | 旧 8.3 第 1 题 | 基础 | 05-undo-redo-binlog与崩溃恢复.md | 误删恢复入口 | 待改写 | 待创建后链接 |
旧-8.3-Q2 | 旧 8.3 第 2 题 | 原理 | 05-undo-redo-binlog与崩溃恢复.md | 备份与时间点恢复链路 | 待改写 | 待创建后链接 |
旧-8.3-Q3 | 旧 8.3 第 3 题 | 项目 | 05-undo-redo-binlog与崩溃恢复.md | 临时实例回放与生产回补 | 待改写 | 待创建后链接 |
旧-10.3 | 旧 10.3 | 旧版直接问答 | 05-undo-redo-binlog与崩溃恢复.md | redo log(重做日志)与 binlog(二进制日志)区别 | 待改写 | 待创建后链接 |
旧-10.12 | 旧 10.12 | 综合 | 05-undo-redo-binlog与崩溃恢复.md | 三类日志分别解决的问题 | 待改写 | 待创建后链接 |
旧-10.13 | 旧 10.13 | 综合 | 05-undo-redo-binlog与崩溃恢复.md | 两阶段提交必要性 | 待改写 | 待创建后链接 |
旧-10.23 | 旧 10.23 | 综合 | 05-undo-redo-binlog与崩溃恢复.md | binlog(二进制日志)误删恢复 | 待改写 | 待创建后链接 |
1.5.6:复制、高可用与备份恢复(1 道)
| 稳定标识 | 原位置 | 题型 | 唯一目标文件 | 目标小节 | 改写状态 | 链接状态 |
|---|
旧-10.22 | 旧 10.22 | 综合 | 06-复制高可用与备份恢复.md | 复制延迟、读写边界与治理 | 待改写 | 待创建后链接 |
1.5.7:分库分表与扩容迁移(12 道)
| 稳定标识 | 原位置 | 题型 | 唯一目标文件 | 目标小节 | 改写状态 | 链接状态 |
|---|
旧-5.3-Q1 | 旧 5.3 第 1 题 | 基础 | 07-分库分表与扩容迁移.md | 垂直与水平拆分 | 待改写 | 待创建后链接 |
旧-5.3-Q2 | 旧 5.3 第 2 题 | 原理 | 07-分库分表与扩容迁移.md | 路由、分片键与全局 ID(全局唯一标识) | 待改写 | 待创建后链接 |
旧-5.3-Q3 | 旧 5.3 第 3 题 | 项目 | 07-分库分表与扩容迁移.md | 订单与海外仓分片设计 | 待改写 | 待创建后链接 |
旧-6.3-Q1 | 旧 6.3 第 1 题 | 基础 | 07-分库分表与扩容迁移.md | ShardingSphere(分库分表中间件)与 MyCat(数据库中间件) | 待改写 | 待创建后链接 |
旧-6.3-Q2 | 旧 6.3 第 2 题 | 原理 | 07-分库分表与扩容迁移.md | 客户端与代理分片边界 | 待改写 | 待创建后链接 |
旧-6.3-Q3 | 旧 6.3 第 3 题 | 项目 | 07-分库分表与扩容迁移.md | 路由层故障与降级 | 待改写 | 待创建后链接 |
旧-9.3-Q1 | 旧 9.3 第 1 题 | 基础 | 07-分库分表与扩容迁移.md | 分片前的索引、归档与读写分离 | 待改写 | 待创建后链接 |
旧-9.3-Q2 | 旧 9.3 第 2 题 | 原理 | 07-分库分表与扩容迁移.md | 扩容双写、双读校验与回滚 | 待改写 | 待创建后链接 |
旧-9.3-Q3 | 旧 9.3 第 3 题 | 项目 | 07-分库分表与扩容迁移.md | 履约轨迹高增长迁移 | 待改写 | 待创建后链接 |
旧-10.5 | 旧 10.5 | 旧版直接问答 | 07-分库分表与扩容迁移.md | 分库分表最大问题 | 待改写 | 待创建后链接 |
旧-10.24 | 旧 10.24 | 综合 | 07-分库分表与扩容迁移.md | 分片键选择 | 待改写 | 待创建后链接 |
旧-10.25 | 旧 10.25 | 综合 | 07-分库分表与扩容迁移.md | 跨库分页与扩容迁移 | 待改写 | 待创建后链接 |
1.5.8:线上排障、项目话术与综合题库(10 道)
| 稳定标识 | 原位置 | 题型 | 唯一目标文件 | 目标小节 | 改写状态 | 链接状态 |
|---|
旧-8.1-Q1 | 旧 8.1 第 1 题 | 基础 | 08-线上排障项目话术与综合题库.md | 慢 SQL(结构化查询语言)排查入口 | 待改写 | 待创建后链接 |
旧-8.1-Q2 | 旧 8.1 第 2 题 | 原理 | 08-线上排障项目话术与综合题库.md | 执行计划、索引失效与证据保全 | 待改写 | 待创建后链接 |
旧-8.1-Q3 | 旧 8.1 第 3 题 | 项目 | 08-线上排障项目话术与综合题库.md | 订单慢查询止血与验证 | 待改写 | 待创建后链接 |
旧-9.1-Q1 | 旧 9.1 第 1 题 | 基础 | 08-线上排障项目话术与综合题库.md | 慢 SQL(结构化查询语言)项目话术 | 待改写 | 待创建后链接 |
旧-9.1-Q2 | 旧 9.1 第 2 题 | 原理 | 08-线上排障项目话术与综合题库.md | 优化决策与风险控制 | 待改写 | 待创建后链接 |
旧-9.1-Q3 | 旧 9.1 第 3 题 | 项目 | 08-线上排障项目话术与综合题库.md | 履约查询优化复盘 | 待改写 | 待创建后链接 |
旧-9.2-Q1 | 旧 9.2 第 1 题 | 基础 | 08-线上排障项目话术与综合题库.md | 库存扣减一致性话术 | 待改写 | 待创建后链接 |
旧-9.2-Q2 | 旧 9.2 第 2 题 | 原理 | 08-线上排障项目话术与综合题库.md | 条件更新、幂等与补偿 | 待改写 | 待创建后链接 |
旧-9.2-Q3 | 旧 9.2 第 3 题 | 项目 | 08-线上排障项目话术与综合题库.md | WMS(仓储管理系统)防超卖闭环 | 待改写 | 待创建后链接 |
旧-10.21 | 旧 10.21 | 综合 | 08-线上排障项目话术与综合题库.md | 慢 SQL(结构化查询语言)系统优化 | 待改写 | 待创建后链接 |
| 迁移核对 | 1.5.1 | 1.5.2 | 1.5.3 | 1.5.4 | 1.5.5 | 1.5.6 | 1.5.7 | 1.5.8 | 合计 |
|---|
| 旧题数量 | 8 | 10 | 18 | 19 | 10 | 1 | 12 | 10 | 88 |
| 已登记稳定标识 | 8 | 10 | 18 | 19 | 10 | 1 | 12 | 10 | 88 |
| 已改写/已链接 | 0/0 | 0/0 | 0/0 | 0/0 | 0/0 | 0/0 | 0/0 | 0/0 | 0/0 |
4. 三条复习路线
4.1 基础路线:先建立数据与访问模型
按 1.5.1 → 1.5.2 → 1.5.3 → 1.5.4 学习。你每一站只回答一个问题:数据怎样落页、查询怎样定位、读到哪个版本、写入会锁住什么。完成标准是你能用库存表解释一次索引访问与条件更新,而不是背出名词。
4.2 原理路线:从提交到恢复再到复制
按 1.5.3 → 1.5.5 → 1.5.6 学习。你需要把事务可见性、undo log(回滚日志)、redo log(重做日志)、binlog(二进制日志)、两阶段提交、复制位点和时间点恢复串为一条链。完成标准是能逐个解释宕机点和验证数据是否正确的证据。
4.3 项目路线:从单库约束到容量演进
按 1.5.4 → 1.5.7 → 1.5.8 学习。以 WMS(仓储管理系统)库存预占、支付入账与退款对账、订单履约和海外仓状态同步为案例,先说明单库的条件更新与幂等,再说明为什么分片、怎样迁移、出了问题怎样止血和对账。
5. MySQL(关系型数据库)5.7、8.0、8.4 版本边界
| 版本 | 教材定位 | 可以稳定讲的边界 | 成稿时必须逐小版本核对 |
|---|
| MySQL(关系型数据库)5.7 | 存量项目基线 | 旧数据字典、旧 DDL(数据定义语言)能力、复制配置与默认字符集口径不能混入 8.0 能力 | 参数默认值、复制配置和旧管理命令 |
| MySQL(关系型数据库)8.0 | 主体学习基线 | 事务数据字典、原子 DDL(数据定义语言)、窗口函数、CTE(公用表表达式)、直方图、降序索引与不可见索引须按版本说明 | EXPLAIN ANALYZE、Hash Join(哈希连接)、Instant DDL(即时数据定义语言)、并行复制的首次适用版本 |
| MySQL(关系型数据库)8.4 | LTS(长期支持)演进基线 | 安全默认值、废弃参数、复制术语、管理命令与 redo log(重做日志)容量管理须以 8.4 手册为准 | 8.4 可用不等于全部 8.0 小版本可用;必须写明迁移影响与验证命令 |
6. 必画图资产与项目映射
6.1 正式图资产清单
| 资产 | 所属分册 | 说明 | 当前状态 |
|---|
innodb-page-buffer-pool.puml 与 PNG(便携式网络图形) | 1.5.1 | 页读入、缓存命中、脏页、双写与数据文件 | 待创建与真实渲染 |
mvcc-version-chain.puml 与 PNG(便携式网络图形) | 1.5.3 | 版本链、读视图与当前读切换 | 待创建与真实渲染 |
lock-range.puml 与 PNG(便携式网络图形) | 1.5.4 | 索引键、记录锁、间隙锁与临键锁 | 待创建与真实渲染 |
sharding-migration.puml 与 PNG(便携式网络图形) | 1.5.7 | 回填、双写、校验、切流、回滚与下线 | 待创建与真实渲染 |
| 内嵌 Mermaid(图表语法)图 | 1.5.1 至 1.5.8 | 机制、数据演绎、排障决策和项目流 | 每张必须输出非空 SVG(可缩放矢量图形)再验收 |
6.2 项目绑定矩阵与数据演绎入口
| 项目场景 | 核心机制 | 失败边界 | 证据与验证 | 唯一收口分册 |
|---|
| WMS(仓储管理系统)库存预占与防超卖 | 条件更新、唯一约束、事务、锁与幂等 | 影响行数为零、死锁、重复请求和长事务 | 库存行、流水、锁等待、重试与对账差异 | 1.5.8 |
| 支付入账、退款与对账 | 两阶段提交、binlog(二进制日志)、幂等和补偿 | 宕机窗口、重复回调、异步失败与误操作 | 事务标识、日志序列号、对账单和恢复记录 | 1.5.8 |
| 订单履约、面单轨迹与海外仓同步 | 索引、复制、分片、迁移和最终一致 | 慢查询、复制延迟、热点、跨片聚合和双写差异 | 执行计划、延迟位点、分片键与校验报告 | 1.5.8 |
数据演绎最低样例:SKU(库存单位)SKU-1001 在仓库 WH-01 的可用库存为 12;两个事务分别预占 8 与 6。分册 1.5.4 必须以带 available >= quantity 的条件更新、影响行数和事务顺序证明“最多一笔成功”;分册 1.5.8 再把失败请求、幂等键和库存流水对账收口,不在本页重复长答案。
7. 完成判定、轻量验收与新对话恢复
7.1 完成红线
- 88 道旧题全部具有且仅具有一个目标;台账总数、分册合计和旧题来源三者均为 88。
- 每个机制分册达到计划规定的知识小节、六字段题、图、表、数据演绎和综合长答案下限。
- 每个版本结论都写明 MySQL(关系型数据库)5.7、8.0 或 8.4 的适用边界;小版本特性附验证命令或官方手册章节。
- 不能把 InnoDB(事务存储引擎)错误表述为“行锁达到阈值就自动升级为表锁”;必须区分索引范围扩大、MDL(元数据锁)阻塞和表锁。
- 正式图先真实渲染、再引用;图后必须解释节点、箭头、前提和失败分支。
7.2 轻量验收清单
| 检查 | 命令或动作 | 通过条件 |
|---|
| 单文件结构与术语审计 | python3 tools/interview_kb_audit.py --root 面试知识整理 --module 13-MySQL与分库分表 | 退出码为 0,且只审计本模块当前文件 |
| Mermaid(图表语法)渲染 | 提取每个围栏并用 mmdc(Mermaid 命令行工具)输出临时 SVG(可缩放矢量图形) | 四张图均可渲染且输出非空 |
| 链接检查 | 目标分册存在后再把“待创建后链接”改为真实相对链接 | 不存在目标不得伪造链接 |
| 工作树检查 | git diff --check | 无空白错误;差异仅含本文件 |
7.3 新对话恢复指令
- 先阅读项目规定的入口资料、旧主文档和本页;核对旧题快照是否仍为 88。
- 从
1.5.1 开始,按本页“分册唯一职责与依赖”创建目标分册;不得跳号。 - 每完成一个分册,回写本页对应题目的改写状态和链接状态;本次任务范围不回写其他文件。
- 在模块边界运行审计、图形渲染和
git diff --check,再由看板维护者更新模块状态。
8. 本次入口页验收记录
| 项目 | 结果 | 证据位置 |
|---|
| 单文件审计 | 待本次内容补齐后执行 | 第 7.2 节命令 |
| Mermaid(图表语法)渲染 | 待本次内容补齐后执行 | 第 1.1 至第 1.4 节四张图 |
| 差异检查 | 待本次内容补齐后执行 | 第 7.2 节命令 |
| 非目标文件改动 | 不在本任务范围内处理 | 仅审阅本文件差异 |