这个DBA有点耶
等值查询加了索引,反而慢了10倍?深挖优化器放弃索引的“回表陷阱”与覆盖索引解法
原创
关注作者
腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
圈层
工具
MCP广场
文章/答案/技术大牛
搜索
搜索
关闭
发布
这个DBA有点耶
社区首页
>
专栏
>
等值查询加了索引,反而慢了10倍?深挖优化器放弃索引的“回表陷阱”与覆盖索引解法
等值查询加了索引,反而慢了10倍?深挖优化器放弃索引的“回表陷阱”与覆盖索引解法
这个DBA有点耶
关注
发布于 2026-11-03 17:14:49
发布于 2026-11-03 17:14:49
129
0
举报
概述
给字段建了索引,查询却从全表扫描的0.5秒变成了5秒。原因不在索引写错了,而在“回表代价”。当索引选择性极差时,优化器会发现:通过二级索引回表取数据的随机I/O开销,远大于直接全表扫描的顺序I/O。本文从B+树物理存储结构出发,拆解优化器放弃索引的底层逻辑,并给出用“覆盖索引”将性能提升250倍的实战方案。
文章被收录于专栏:
小耶转行干货分享
小耶转行干货分享
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系
cloudcommunity@tencent.com
删除。
数据索引
mysql
sql
dba
目录
一、为什么优化器会“放弃”你的索引?
二、如果强制用索引,为什么会慢 10 倍?
三、终极解法:消灭回表(覆盖索引)
四、避坑指南:怎么写对覆盖索引?
五、小结
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档