Skip to content

MySQL 索引设计笔记

索引类型

  • 主键索引:聚簇索引,叶子节点存整行数据
  • 二级索引:叶子节点存主键值,回表查询
  • 覆盖索引:查询列都在索引中,避免回表

最左前缀原则

联合索引 (a, b, c)

  • 能用到:aa+ba+b+c
  • 用不到:bb+cc

索引失效的常见场景

  1. 对索引列使用函数或运算:WHERE YEAR(created_at) = 2026
  2. 隐式类型转换:WHERE phone = 138...(phone 是 varchar)
  3. LIKE '%abc' 前导通配符
  4. OR 连接非索引列

设计建议

  • 选择性高的列放联合索引前面
  • 避免过多索引(写入开销 + 占用空间)
  • 大字段不要建索引,考虑前缀索引

参考

以「技术栈」为核心的个人知识库