CORE CONCEPTS · 关系型 · Web OLTP
MySQL 核心知识
MySQL 的工程核心是 InnoDB:聚簇索引、二级索引回表、undo/redo、next-key lock 与复制拓扑决定大多数线上行为。
学完应该能做到
- 掌握 InnoDB 行与索引组织
- 能定位锁等待和复制延迟
- 区分 LTS 与 Innovation 版本线
三个必须建立的心智模型
InnoDB 存储结构
主键即聚簇索引,二级索引叶子保存主键;主键选择会直接影响所有索引大小。
- 优先短且稳定的主键
- 理解覆盖索引与回表
- 控制大字段和页分裂
隔离与锁
默认 Repeatable Read 配合 next-key lock 防止幻读,但范围更新可能扩大锁范围。
- 用 performance_schema 查看等待
- 避免无索引更新
- 把死锁当作可重试的并发信号
复制与高可用
binlog、GTID、异步/半同步复制和 Group Replication 构成常见高可用基础。
- 监控 apply 延迟而非只看连接
- 校验 failover 后数据一致性
- 区分读扩展和写扩展
把知识落到工程决策
建模前
先写出访问模式、正确性边界、数据生命周期和故障预算,再决定表、键、索引或分区。
上线前
使用接近生产的数据分布与并发压测,记录查询计划、资源水位和恢复时间作为基线。
运行中
监控延迟分位数、容量增长、后台维护与复制健康;报警必须能映射到可执行处置步骤。