README
# 数据库原理系列
索引、事务、存储引擎——天天用的 MySQL/Redis 底层到底在干什么
# 系列导读
本系列从数据库的核心组件出发,覆盖架构设计、索引原理、事务与锁、存储引擎、查询优化、高可用等核心子系统。以 MySQL InnoDB 为主线,兼顾 Redis 等 NoSQL 的设计思想。
学习路径建议:
基础层 核心层 深化层
┌────────────┐ ┌────────────────┐ ┌──────────────┐
│ 01.架构概览 │────────>│ 02.索引原理 │─────────>│ 06.查询优化 │
│ 03.事务隔离 │ │ 04.锁机制 │ │ 08.主从复制 │
└────────────┘ │ 05.存储引擎 │ │ 09.分库分表 │
└────────────────┘ └──────────────┘
│
┌──────┴──────┐
▼ ▼
┌──────────┐ ┌──────────┐
│ 07.日志系统│ │ 10.NoSQL │
└──────────┘ └──────────┘
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# 文档目录
| 编号 | 文档 | 核心内容 | 难度 |
|---|---|---|---|
| 01 | 数据库架构概览 | 连接器→解析器→优化器→执行器→存储引擎,一条SQL的一生 | ⭐⭐ |
| 02 | 索引底层原理 | B+Tree为什么快、Hash索引、联合索引最左前缀、索引下推 | ⭐⭐⭐ |
| 03 | 事务与隔离级别 | ACID、脏读/幻读/不可重复读、MVCC多版本并发控制 | ⭐⭐⭐ |
| 04 | 锁机制详解 | 行锁/表锁/间隙锁/意向锁、死锁检测与解决 | ⭐⭐⭐ |
| 05 | 存储引擎对比 | InnoDB vs MyISAM、页结构、Buffer Pool、Change Buffer | ⭐⭐⭐ |
| 06 | SQL查询优化 | EXPLAIN实战、索引失效场景、慢查询分析、SQL改写 | ⭐⭐⭐ |
| 07 | 日志系统设计 | redo log/undo log/binlog、WAL、崩溃恢复流程 | ⭐⭐⭐ |
| 08 | 主从复制架构 | binlog同步、半同步复制、GTID、读写分离 | ⭐⭐⭐ |
| 09 | 分库分表方案 | 水平/垂直拆分、分片键选择、跨分片查询、数据迁移 | ⭐⭐⭐⭐ |
| 10 | NoSQL设计思想 | Redis数据结构/持久化/AOF、与关系型DB的选型边界 | ⭐⭐⭐ |
# 核心知识图谱
┌─────────────┐
│ 数据库原理 │
│ 数据管理者 │
└──────┬──────┘
┌───────────────┼───────────────┐
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────┐
│ 查询引擎 │ │ 存储引擎 │ │ 高可用 │
│ │ │ │ │ │
│ SQL解析器 │ │ B+Tree │ │ 主从复制 │
│ 查询优化器 │ │ 事务/锁 │ │ 读写分离 │
│ 执行器 │ │ BufferPool│ │ 分库分表 │
│ 索引原理 │ │ 日志系统 │ │ 备份恢复 │
└──────────┘ └──────────┘ └──────────┘
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
# 学习方法
本系列延续疑惑→答疑→论证→结论的教学模式:
- 疑惑:从慢查询、死锁、数据不一致等线上故障切入
- 答疑:给出数据库层面的根本原因
- 论证:通过 EXPLAIN 分析、源码剖析深入理解
- 结论/技术演变:总结设计思想,展示 MySQL 版本演进
上次更新: 2026/06/07, 18:47:40