KEEL · 龙骨 · A CURRICULUM FOR THE AI ERA

索引与并发实战 — keel 龙骨

索引与并发实战 的参考信息:索引与并发实战

课程导读 · 把调优从"会看"推进到"敢改"

学完《数据库与缓存调优》你能看懂执行计划、知道索引的基本原则、能排查锁等待。但真实生产里还有一整层问题那门课没展开:

这门课就是把这些"知道原则但不敢下手"的地方,补成有判据、有动作、有回滚方案的实操。

与《数据库与缓存调优》的分工

数据库与缓存调优(先修) 本课程
层次 建立框架:有哪些问题、各自怎么定位 深入一层:怎么定量、怎么选、怎么上线
索引 最左前缀、覆盖索引、常见失效 执行计划精读、失效全集、线上加索引的变更管理
并发 隔离级别、锁等待排查、连接池参数 并发量化、锁方案选型、死锁工程化、热点削峰
产出 能定位问题 能带着数据完成一次改动并安全回滚

没有先修那门课,不要直接学这门——你会把"优化"做成"试错"。

你会拿到什么

章节 一句话 关键动作
01 执行计划精读 四列之外还要看什么 key_len / filtered / EXPLAIN ANALYZE / 预估与实际偏差
02 索引设计:从选择性到字段顺序 字段顺序不是靠猜 选择性计算 + 等值/范围/排序三段排布 + 前缀与函数索引
03 索引失效与反模式全集 一份能对照排查的清单 12 类失效 + force index 的代价 + 优化器误判
04 索引的代价与线上变更 加索引本身是有风险的操作 冗余/未使用索引识别 + Online DDL + 权限受限环境怎么加
05 并发的量化 拐点是算出来的不是感觉出来的 Little's Law + 队列饱和 + 压测曲线 + 背压闸门
06 乐观锁与悲观锁 什么冲突率该换方案 版本号 CAS + 条件更新原子扣减 + 重试与 ABA
07 死锁的工程化处理 从日志反推改哪行代码 死锁日志字段解读 + 预防四招 + 应用层重试策略
08 热点、削峰与一致性收口 削峰之后怎么保证不错账 四方案对比 + 幂等三件套 + 对账

每章结构统一:原理 → 动手:可观察结果 → 故障注入 → 自测题。

这门课的硬要求

与先修课同一条:没有数据不许下结论。在此基础上再加两条:

  1. 每次索引变更都必须有回滚路径——包括"加了索引但优化器不认"这种非故障情况;
  2. 并发相关的结论必须来自压测,且压测要给出并发度-吞吐-延迟三条曲线,不能只报一个 QPS 数字。

替身边界

示例以 MySQL 8.0 / InnoDB 为主,少量涉及 PostgreSQL 的差异会在文中标注。分库分表、NewSQL 不在范围内——本课程假设你还在单实例或主从架构内做优化,这也是绝大多数真实项目的现状。

进入 keel 阅读