数据库索引最容易踩的 12 个坑:加了索引反而更慢,最后一个让 DBA 崩溃

索引是数据库性能优化里最便宜、也最容易翻车的一招。

便宜,是因为一条 CREATE INDEX 就能让一条几秒的查询变成几毫秒;容易翻车,是因为绝大多数人对索引的理解停留在"加了就快"这四个字上,却不知道索引什么时候会失效、什么时候会拖慢写入、什么时候会选错路径。

真实世界里更常见的场景是这样的:

  • 慢查询告警来了,开发随手加了个索引,线上查询确实快了;
  • 一周后,这张表的写入从每秒 3000 掉到每秒 800;
  • 再过一个月,磁盘空间涨了 40%,备份时间翻倍;
  • 最后某天 DBA 打开索引列表一看:一张 200 万行的表,上面挂着 23 个索引,其中 11 个从来没被用过。

这篇文章不讲教科书式的 B+ 树原理,只讲 12 个在生产环境里反复出现、代价真实、而且大部分团队至今还在踩的索引陷阱。每一个坑都按"现象 → 原因 → 怎么查 → 怎么改"四段式讲清楚,你可以直接对照着自己库里的表去排查。


坑 1:给低区分度的列建索引,等于给自己找麻烦

现象

表里有个 status 字段,取值只有 0/1/2 三种,开发觉得"查询经常按状态过滤",于是加了个索引。结果查询速度几乎没变,但写入慢了、磁盘涨了。

原因

索引的价值来自区分度(Card

内容摘要

一句话概述:索引是数据库性能优化里最便宜、也最容易翻车的一招。

你将了解到:

  • 索引排查的标准化流程
  • 怎么查(执行前后的检查清单)
  • 怎么改(正确的操作姿势)

适合人群:需要动手落地、想补齐技术短板的开发者。

全文共 13 个章节,按「索引排查的标准化流程 → 怎么改(正确的操作姿势)」的顺序展开,每节都能单独查阅,配有可直接照做的清单与模板。

内容侧重可落地的操作流程与常见坑点,读完就能对照自己的情况动手,不需要额外补理论基础。

既适合按章节顺序通读一遍建立完整认知,也适合遇到具体问题时按需查阅对应章节。

以上为全文要点速览,完整内容需解锁后阅读

🔒 付费文档

支付 5 积分后即可解锁全部内容