← 学习中心

MySQL:索引原理与查询优化

从 B+ 树结构讲清聚簇/非聚簇索引、回表与覆盖索引,再到最左前缀、索引失效与慢 SQL 排查。

本节你将能

解释为什么 MySQL 用 B+ 树,说清回表与覆盖索引,并能针对慢 SQL 给出优化思路。

核心要点

  • B+ 树非叶子只存 key、叶子链表相连,范围查询与全表扫描高效;聚簇索引叶子即数据行。
  • 二级索引叶子存主键,需回表;覆盖索引(查询列都在索引中)可避免回表。
  • 最左前缀:联合索引 (a,b,c) 必须从 a 开始连续匹配;函数/隐式转换/前导 % 会导致失效。
  • 排查:慢查询日志 + EXPLAIN(type/key/rows/Extra),关注 Using filesort/temporary。

面试连招

追问:为什么阿里规范建议软删除用标记而非 DELETE?大表如何优化(分库分表/读写分离)?

MySQL:索引原理与查询优化 - 生命科学与前沿科技学习平台 | 必学必会