跳转至

MySQL 核心知识体系概览

学习目标:从"会写 SQL"升级到"理解原理 → 能排查慢查询 → 能做架构设计决策"

检验标准:学完每个模块后,能口述"这个技术解决了什么问题?不用它会怎样?工作中有哪些坑?"


整体知识地图

mindmap
    root((MySQL 知识体系))
        整体架构
            Server层 vs 存储引擎层
            Handler API 可插拔
            一条SQL的旅程
            Redo+Binlog 2PC
        基础层
            数据类型与表设计规范
            索引原理
                B+树结构
                聚簇索引 vs 二级索引
                覆盖索引 / 回表
                联合索引最左前缀
                索引失效场景
            SQL 执行原理
                查询优化器
                执行计划
        事务与并发
            ACID 四大特性
            undo log / redo log
            四种隔离级别
            MVCC 多版本并发控制
            Read View 快照
            锁机制
                表锁 / 行锁
                间隙锁 / 临键锁
                死锁检测与避免
        引擎与架构
            InnoDB 存储引擎
            Binlog 与主从复制
            在线 DDL 与大表变更
            高可用架构方案
            分库分表与分布式架构
        实战应用
            EXPLAIN 与性能优化
            慢查询分析
            实战问题与避坑指南

知识点导航

# 知识点 核心一句话 详细文档
00 MySQL 整体架构 Server 层懂 SQL、引擎层管数据,handler 解耦两层;Redo+Binlog 2PC 保证崩溃一致 MySQL整体架构
01 数据类型与表设计 选择合适的数据类型节省空间,遵循三范式合理设计主键和约束 数据类型与表设计规范
02 索引详解 B+树非叶子节点不存数据,层数少 IO 少;叶子节点链表支持范围查询 索引详解
03 SQL 执行与性能优化 SQL 执行全链路、查询优化器、EXPLAIN 分析、Join 算法、慢查询排查 SQL执行与性能优化
04 事务与并发控制 ACID 四大特性、undo/redo log、四种隔离级别、MVCC 原理、Read View 事务与并发控制
05 锁机制与死锁 记录锁精确锁行,间隙锁防幻读,死锁自动检测回滚代价小的事务 锁机制与死锁
06 InnoDB 存储引擎 缓冲池、Change Buffer、双写缓冲区等核心组件 InnoDB存储引擎深度剖析
07 Binlog 与主从复制 记录所有数据变更,用于主从复制和数据恢复 Binlog与主从复制
08 在线 DDL 与大表变更 不锁表的情况下修改表结构,支持大表变更 在线DDL与大表变更
09 高可用架构方案 主从、MHA、MGR 等方案保证服务连续性 高可用架构方案
10 分库分表与分布式架构 水平拆分解决单表数据量过大问题 分库分表与分布式架构
11 实战问题与避坑指南 字符集、时间时区、大表操作、事务失效、连接池等常见坑 实战问题与避坑指南
12 MySQL 8.0 与 8.4 新特性精讲 CTE / 窗口函数 / 直方图 / Invisible Index / Instant DDL / LTS 版本差异 MySQL8.0与8.4新特性精讲

高频问题索引

问题 详见
MySQL 是怎么分层的?一条 SQL 经过哪些组件? MySQL整体架构
为什么既要 Redo 又要 Binlog?2PC 如何保证一致? MySQL整体架构
为什么用 B+ 树?什么是回表?如何避免? 索引详解
联合索引最左前缀是什么?哪些情况索引失效? 索引详解
EXPLAIN type=ALL 怎么办?深分页如何优化? SQL执行与性能优化
ACID 如何实现?MVCC 原理? 事务与并发控制
RC 和 RR 的区别?间隙锁是什么? 事务与并发控制 / 锁机制与死锁
如何排查死锁?高并发下出现幻读怎么办? 锁机制与死锁
主从复制延迟怎么办?大表查询慢怎么优化? 实战问题与避坑指南
MySQL 5.7 / 8.0 / 8.4 如何选型?LTS 和 Innovation 差别? MySQL8.0与8.4新特性精讲
CTE / 窗口函数 / Instant DDL 是什么?什么时候用? MySQL8.0与8.4新特性精讲

一句话口诀

表设计选对类型,索引用好 B+ 树,EXPLAIN 看执行计划,事务靠 undo/redo log,并发靠 MVCC + 锁,架构靠主从 + 分片。