首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >等值查询加了索引,反而慢了10倍?深挖优化器放弃索引的“回表陷阱”与覆盖索引解法

等值查询加了索引,反而慢了10倍?深挖优化器放弃索引的“回表陷阱”与覆盖索引解法

作者头像
这个DBA有点耶
发布于 2026-11-03 17:14:49
发布于 2026-11-03 17:14:49
1290
举报
概述
给字段建了索引,查询却从全表扫描的0.5秒变成了5秒。原因不在索引写错了,而在“回表代价”。当索引选择性极差时,优化器会发现:通过二级索引回表取数据的随机I/O开销,远大于直接全表扫描的顺序I/O。本文从B+树物理存储结构出发,拆解优化器放弃索引的底层逻辑,并给出用“覆盖索引”将性能提升250倍的实战方案。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 一、为什么优化器会“放弃”你的索引?
  • 二、如果强制用索引,为什么会慢 10 倍?
  • 三、终极解法:消灭回表(覆盖索引)
  • 四、避坑指南:怎么写对覆盖索引?
  • 五、小结
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档