外观
MySQL
知识脉络
MySQL
├── 索引
│ ├── B+树结构与原理
│ ├── 聚簇索引 vs 非聚簇索引
│ ├── 覆盖索引/最左前缀/索引下推
│ ├── 索引失效场景
│ └── 索引设计原则
├── 事务
│ ├── ACID 特性
│ ├── 隔离级别(RU/RC/RR/Serializable)
│ ├── MVCC 实现原理
│ └── 幻读与间隙锁
├── 锁
│ ├── 行锁/表锁/意向锁
│ ├── 间隙锁/临键锁/记录锁
│ ├── 死锁排查
│ └── 乐观锁/悲观锁
├── 日志
│ ├── redo log(崩溃恢复)
│ ├── undo log(事务回滚)
│ ├── binlog(主从复制)
│ └── 两阶段提交
├── SQL 优化
│ ├── explain 执行计划
│ ├── 慢查询优化
│ ├── 联合索引设计
│ └── 分页优化
└── 高可用与分库分表
├── 主从复制
├── 分库分表方案(ShardingSphere)
├── 读写分离
└── 数据一致性知识点清单
| # | 题目 | 频率 | 难度 | 状态 |
|---|---|---|---|---|
| 1 | B+树索引原理 | 极高 | 进阶 | todo |
| 2 | 聚簇索引与非聚簇索引 | 极高 | 进阶 | todo |
| 3 | 索引失效场景 | 极高 | 进阶 | todo |
| 4 | 覆盖索引与回表 | 极高 | 进阶 | todo |
| 5 | MVCC实现原理 | 极高 | 困难 | todo |
| 6 | 事务隔离级别 | 极高 | 进阶 | todo |
| 7 | redo-log与binlog | 极高 | 困难 | todo |
| 8 | 两阶段提交 | 高 | 困难 | todo |
| 9 | MySQL锁机制 | 极高 | 困难 | todo |
| 10 | 间隙锁与幻读 | 极高 | 困难 | todo |
| 11 | explain执行计划 | 极高 | 进阶 | todo |
| 12 | 慢查询优化实战 | 高 | 进阶 | todo |
| 13 | 最左前缀原则 | 极高 | 基础 | todo |
| 14 | 索引下推ICP | 高 | 进阶 | todo |
| 15 | 主从复制原理 | 高 | 进阶 | todo |
| 16 | 分库分表方案 | 高 | 困难 | todo |
| 17 | MySQL死锁排查 | 高 | 困难 | todo |
| 18 | 联合索引设计原则 | 高 | 进阶 | todo |
| 19 | 大表分页优化 | 高 | 进阶 | todo |
| 20 | undo-log与事务回滚 | 中 | 进阶 | todo |
| 21 | Buffer-Pool原理 | 中 | 进阶 | todo |
| 22 | MySQL架构与存储引擎 | 中 | 基础 | todo |
| 23 | InnoDB与MyISAM对比 | 高 | 基础 | todo |
| 24 | 读写分离方案 | 中 | 进阶 | todo |
| 25 | 自增ID与分布式ID | 高 | 进阶 | todo |
口诀速记
- 索引失效: "模头空函否全或(模糊左/头部函数/空值/函数计算/否定/全扫/OR)"
- 事务隔离: "读未读已可重串行化,RR默认靠MVCC+间隙锁"
- 日志三兄弟: "redo保崩溃,undo保回滚,binlog保复制"
- MVCC: "Read View + undo版本链 = 快照读"
跨域关联
- 分布式ID → 分布式ID生成方案(分布式系统)
- binlog → Canal数据同步(消息队列/微服务)
- 事务 → 分布式事务(分布式系统)
- 索引B+树 → 数据结构-B树与B+树(数据结构)