InnoDB 架构概览
InnoDB 是 MySQL 默认 事务型 存储引擎:行级锁、MVCC、崩溃恢复。Week 5 五篇形成索引→事务→锁→EXPLAIN 闭环,建议配合 /chapters/mysql-interview/innodb-storage 交互 Lab。
逻辑 vs 物理结构
- Tablespace:表空间文件
.ibd(每表一文件)或系统表空间。 - Segment / Extent / Page:空间分配层次。
- Row:变长字段、NULL bitmap、隐藏列
DB_TRX_ID、DB_ROLL_PTR。
聚簇索引
主键即数据:按主键顺序 B+ 树存储。无显式主键则选唯一非空索引,否则隐式 row_id。
二级索引:叶子存 (索引列, PK),查其他列 → 回表 再查聚簇索引。
Buffer Pool
内存中缓存 数据页。LRU 变种(young/old 区)防全表扫描污染。
- 读:miss 则从磁盘 load 页。
- 写:改内存页为脏页,异步 flush;WAL 先写 redo log。
redo 与 undo
- redo log:物理/逻辑 redo,保证已提交事务持久(crash 后 replay)。
- undo log:事务回滚与 MVCC 旧版本链(见
week05-transaction-mvcc)。
与 OS 虚拟内存
Buffer Pool 是用户态缓存;OS page cache 也可能缓存同一文件。Double buffering 理解即可。
面试表达
实战巩固与面试表达
本篇属于 8 周冲刺 week05-innodb-storage 主题。复习时先闭卷回答 frontmatter 中三张 flashcard,再展开口述两个「为什么」:为什么这种方案能 work、边界失败时如何降级。与相邻章节对照:算法篇强调复杂度与模板,Go 篇强调工程默认写法,中间件篇强调线上故障案例。
动手与自检清单
用 25 分钟限时做 1 道相关练习题或画出一张架构/数据结构示意图;用 5 分钟写 STAR 片段说明你在项目里是否用过类似技术。记录 3 个面试追问及你的标准答法,存入 /zh/notebook/master-plan 笔记。若某点不熟,回到对应 /chapters 交互 Lab 重新走一遍流程,比死记卡片更有效。
易错点提醒
避免只背名词不会画图;避免只说优点不谈 trade-off(性能、一致性、运维成本至少提一项);避免把学习 Demo 说成百万 QPS 生产。回答时使用「场景 → 方案 → 结果 → 反思」四段式,体现工程成熟度。
自检
画聚簇 + 二级索引 B+ 树示意图;解释 flush 策略与 checkpoint。下一篇:week05-index-query-path。