Skip to content

案例总览

55 个精选案例,覆盖 MySQL 优化的七大核心场景。每个案例都带真实数据,可一键复现。

一、索引设计与失效(14 个)

#案例难度版本
01深度分页 LIMIT 大偏移⭐⭐5.7 & 8.0
02联合索引最左前缀失效5.7 & 8.0
03隐式类型转换致索引失效⭐⭐5.7 & 8.0
04函数操作致索引失效⭐⭐5.7 & 8.0
05LIKE 前导通配符5.7 & 8.0
06OR 条件与索引合并⭐⭐5.7 & 8.0
07范围查询后列索引失效⭐⭐5.7 & 8.0
08覆盖索引避免回表⭐⭐5.7 & 8.0
09索引下推 ICP⭐⭐⭐5.7 & 8.0
10冗余索引清理⭐⭐5.7 & 8.0
11前缀索引优化长字符串⭐⭐5.7 & 8.0
12索引选择性评估⭐⭐5.7 & 8.0
13不可见索引(8.0)⭐⭐8.0+
14自增主键跳跃与性能⭐⭐5.7 & 8.0

二、查询改写(9 个)

#案例难度版本
15子查询改写为 JOIN⭐⭐5.7 & 8.0
16COUNT(*) 慢查询优化⭐⭐5.7 & 8.0
17GROUP BY filesort 优化⭐⭐5.7 & 8.0
18大 IN 列表优化⭐⭐5.7 & 8.0
19EXISTS vs IN⭐⭐5.7 & 8.0
20DISTINCT 优化⭐⭐5.7 & 8.0
21NOT IN vs LEFT JOIN IS NULL⭐⭐5.7 & 8.0
22UNION vs UNION ALL5.7 & 8.0
23ORDER BY LIMIT 无索引优化⭐⭐5.7 & 8.0

三、JOIN 优化(7 个)

#案例难度版本
24小表驱动大表⭐⭐5.7 & 8.0
25被驱动表无索引的灾难⭐⭐5.7 & 8.0
26Hash Join vs BNL⭐⭐⭐8.0+
27多表 JOIN 顺序控制⭐⭐⭐5.7 & 8.0
28自连接查询优化⭐⭐5.7 & 8.0
29JOIN + GROUP BY 聚合优化⭐⭐⭐5.7 & 8.0
30派生表物化优化⭐⭐5.7 & 8.0

四、DDL 与大表(6 个)

#案例难度版本
31大表加索引 Online DDL⭐⭐⭐5.7 & 8.0
32TEXT/BLOB 字段陷阱⭐⭐5.7 & 8.0
33大表 DELETE 分批⭐⭐5.7 & 8.0
34分区表 RANGE 分区优化⭐⭐⭐5.7 & 8.0
35大表批量 INSERT 优化⭐⭐5.7 & 8.0
36OPTIMIZE TABLE 碎片整理⭐⭐5.7 & 8.0

五、架构级优化(7 个)

#案例难度版本
37多条件动态筛选索引设计⭐⭐⭐5.7 & 8.0
38报表统计汇总表⭐⭐5.7 & 8.0
39冷热数据分离⭐⭐⭐5.7 & 8.0
40秒杀场景库存扣减⭐⭐⭐5.7 & 8.0
41读写分离架构⭐⭐⭐5.7 & 8.0
42JSON 字段使用模式⭐⭐8.0+
43软删除设计模式⭐⭐5.7 & 8.0

六、事务与锁(7 个)

#案例难度版本
44死锁排查与分析⭐⭐⭐5.7 & 8.0
45间隙锁导致插入阻塞⭐⭐⭐5.7 & 8.0
46SELECT FOR UPDATE 锁范围⭐⭐5.7 & 8.0
47乐观锁与悲观锁对比⭐⭐5.7 & 8.0
48幻读问题与解决⭐⭐⭐5.7 & 8.0
49死锁重试与超时处理⭐⭐5.7 & 8.0
50唯一索引并发插入冲突⭐⭐5.7 & 8.0

七、优化器与 8.0 新特性(5 个)

#案例难度版本
51降序索引消除 filesort⭐⭐5.7 & 8.0
52函数索引(8.0)⭐⭐8.0+
53直方图统计优化⭐⭐⭐8.0+
54CTE 递归查询优化⭐⭐8.0+
55窗口函数替代自连接⭐⭐8.0+

难度说明

  • ⭐ 入门:理解索引基本原理即可
  • ⭐⭐ 进阶:需要理解 EXPLAIN 输出和优化器行为
  • ⭐⭐⭐ 高级:涉及架构设计或版本特性差异

MIT Licensed