Skip to content

MySQL 知识地图与速学路线

这不是另一篇从头讲概念的教程,而是整个 MySQL 专题的导航页。目标是让你快速知道“要学什么、学到什么程度、面试会怎么追问”。

一张图看全知识体系

mermaid
flowchart TD
    A["基础使用"] --> B["内部原理"]
    B --> C["性能优化"]
    B --> D["事务并发"]
    C --> E["生产运维"]
    D --> E
    E --> F["架构治理"]
    F --> G["面试表达与实战"]

    A1["SQL / 数据类型 / 表设计 / 字符集"] --> A
    B1["架构 / 页 / Buffer Pool / B+Tree"] --> B
    C1["优化器 / EXPLAIN / Join / 慢 SQL"] --> C
    D1["ACID / 隔离级别 / 锁 / MVCC / 日志"] --> D
    E1["配置 / 权限 / 监控 / 备份 / DDL"] --> E
    F1["复制 / 高可用 / 分区 / 分库分表"] --> F

必须掌握的八层能力

层级必须能回答对应文档
1. SQL 与建模类型怎么选、约束怎么定、SQL 逻辑执行顺序是什么MySQL 8 新特性SQL 基础SQL 进阶MySQL 函数表设计复杂关联
2. 架构与存储一条 SQL 经过哪些层,数据页和 Buffer Pool 怎么工作架构分层存储引擎与 Buffer Pool
3. 索引B+Tree、聚簇索引、回表、覆盖索引、最左前缀索引存储结构
4. 执行与优化为什么选这个索引,怎样用证据定位慢 SQLEXPLAIN优化器性能优化
5. 事务并发ACID、RC/RR、快照读、当前读、锁范围、死锁事务MVCC
6. 日志与恢复undo、redo、binlog 各做什么,两阶段提交为什么必要更新事务全过程日志
7. 生产运维参数、权限、监控、备份、DDL、故障怎么处理安装与配置监控排障备份恢复
8. 架构扩展复制、高可用、分区、归档、分库分表怎么选复制高可用分区与在线 DDL分库分表ShardingSphere

7 天面试突击路线

第 1 天:SQL、类型和表设计

掌握 select、Join、子查询、CTE、窗口函数、事务语句;能说明 decimaldatetimetimestampvarchartext 的选择;能为订单表设计主键、唯一键和审计字段。

第 2 天:索引与执行计划

手画三层 B+Tree;讲清聚簇索引、二级索引和回表;会依据真实查询设计联合索引;按 type → key → key_len → rows → filtered → Extra 分析 EXPLAIN

第 3 天:事务、锁与 MVCC

不要只背 ACID。要能从两个会话解释 RC 和 RR 的 Read View 差异,解释记录锁、间隙锁、临键锁,能根据死锁日志还原加锁顺序。

第 4 天:日志与更新链路

沿着 索引定位 → 加锁 → undo → 修改内存页 → redo → binlog → 两阶段提交 讲一次 update;明确三类日志的层次、内容、生命周期和用途。

第 5 天:慢 SQL 与生产排障

能区分 CPU、IO、锁等待、连接耗尽、复制延迟;会用慢日志、Performance Schema、EXPLAIN ANALYZESHOW ENGINE INNODB STATUS 建证据链。

第 6 天:复制、备份和高可用

讲清 source、relay log、replica 重放、GTID、异步与半同步;明确复制不是备份;能设计全量备份加 binlog 的 PITR,并说明 RPO、RTO。

第 7 天:项目题和模拟面试

先完成 SQL 查询面试题 训练现场写 SQL,再做商业场景训练营,最后用面试题库做三轮回答:第一轮每题 30 秒,第二轮每题 2 分钟,第三轮加入项目数据与权衡。

回答面试题的通用结构

建议用四步,不要上来堆名词:

  1. 先下定义:一句话说明它是什么、解决什么问题。
  2. 再讲机制:列出关键对象和完整链路。
  3. 补边界条件:说明版本、隔离级别、索引和数据量等前提。
  4. 落到生产:给监控指标、排查命令、优化收益和副作用。

例如回答“为什么有索引仍然慢”:

text
索引只是候选访问路径,不保证扫描量小。先看优化器是否选中,再看扫描范围、回表次数、排序临时表和锁等待;用 EXPLAIN ANALYZE 与慢日志核对估算和实际值。优化可能是重排联合索引、缩小返回集、改游标分页或更新统计信息,同时评估新增索引的写放大和空间成本。

自测标准

真正掌握一个知识点,要同时做到:

  • 能用自己的话解释,不依赖背诵原句。
  • 能写最小 SQL 复现现象。
  • 能说出至少一个错误用法和后果。
  • 能说明如何从监控或执行计划验证判断。
  • 能把它与上下游知识点串起来。