当前位置: 首页 > news >正文

SQL优化-索引扫描

Backward index scan 是什么意思?

在 MySQL(尤其是 8.0 的EXPLAIN FORMAT=TREE/EXPLAIN ANALYZE)里,Backward index scan 表示:

优化器沿索引反向读取数据(从大到小),用来满足ORDER BY ... DESC或某些反向范围条件,从而避免额外排序(filesort)。


1. 和正向扫描对比

类型含义典型场景

Index scan(正向)

从索引小 → 大读

ORDER BY start_time ASC

Backward index scan(反向)

从索引大 → 小读

ORDER BY start_time DESC

例如索引(start_time)

-- 可能:Forward index scan,从小到大

ORDER BY start_time ASC

-- 可能:Backward index scan,从大到小

ORDER BY start_time DESC


2. 为什么有用

若 WHERE 能用上该索引,且 ORDER BY 方向与扫描方向一致,MySQL 可以:

Index (range) scan backward

→ 结果已经按 DESC 有序

→ 不需要 Sort / filesort

执行计划里若看到 Backward index scan,通常是好信号(比全表扫 + Sort 好)。


3. 计划里可能长什么样

-> Index range scan (backward) on t using idx_start_time

(cost=... rows=...)

或:

-> Backward index scan on idx_start_time


4. 什么时候不会出现

即使有索引,也可能没有 Backward index scan,例如你之前那条 SQL:

  • verification_result != '0000'过滤选择性差
  • 优化器认为全表扫更便宜
  • ORDER BY 列和索引列不一致(如索引在start_time,却ORDER BY create_time

这时计划会是 Table scan + Sort,而不是 Backward index scan。


5. 和「倒序索引」的区别

  • Backward index scan:运行时反向读现有 B+Tree 索引,不必建DESC索引。
  • MySQL 8.0 也支持索引定义里写DESC

CREATE INDEX idx ON t (start_time DESC);

对 InnoDB 来说,8.0 起正/反序索引能力更完整,但很多时候正向索引 + backward scan 就够用了。


6. 一句话

Backward index scan = 索引倒着扫,用来直接得到 DESC 顺序,省掉排序。

若你希望风控告警那条 SQL 出现它,需要:WHERE 能走索引(尤其时间范围)+ ORDER BY 与索引列一致(如start_time DESC)+ 合适的复合索引,而不是只有单列索引却全表扫。

http://www.gsyq.cn/news/1624999.html

相关文章:

  • 4563563
  • 2026年罗马尼亚EOR名义雇主服务商权威排行榜:揭晓五款精选五大方案
  • 合同管理的“三级跳”:道本×DeepSeek如何把三件事做到位
  • AI编程助手实战对比:Deepseek-V4 vs Claude-Opus工程能力深度解析
  • 仅限前500名开发者获取:LLM提示工程白皮书V3.2(含GPT-4.5适配层提示词迁移方案)
  • 2026视频去水印方法有哪些?靠谱视频去水印软件推荐
  • 新一代浏览器自动化框架:如何系统性解决Selenium的七大痛点
  • 生产级机器学习模型服务化落地实战指南
  • 机器学习论文精读四步法:从无效阅读到可复现操作
  • 机器学习系统工程实战:从模型上线到稳定服务的全链路体检
  • 【Java课程设计/毕业设计】基于 SpringBoot 的医疗机构中药材进销存运维系统的设计与实现 基于 SpringBoot 的中药材采购归档与库存统计系统【附源码、数据库、万字文档】
  • foo2zjs实战手册:解锁Linux打印兼容性的开源技术伙伴
  • 【学习记录】Week9(一):glibc堆结构精读与堆风水方法论——堆利用的基石
  • Seedance2.0实测:轻量级AI短剧生成闭环工具链
  • AI的灵感创作
  • 大模型轻量化推理技术选型与实践指南
  • DeepSeek V4本地部署三步落地:GGUF量化、API代理与中文Tokenizer实战
  • 基于Python的重庆市图书馆管理系统
  • JMeter邮件服务器压测实战:SMTP/POP3协议性能瓶颈定位与优化
  • 体制内必须用上的3个AI工具
  • Jakarta Validation 校验注解速查手册
  • 试用duckdb 1.6dev python模块
  • 2026佳木斯黄金回收白银回收铂金回收旧料回收怎么选?五家高实价铂金白银线下门店测评清单 + 联系方式
  • 2026年AI网站开发公司排名,高端定制服务商榜单
  • C++工程化开发规范、内存泄漏排查、常见报错与高阶实战总结
  • 20种AI Agent架构实战解析:从基础到高级方案
  • 【2026运营版】B2B2C多商户外贸电商系统|跨境商城|云仓库代发+分销+佣金+POS下单
  • 实习生转正复盘:技术成长要有证据,不要只靠感觉努力
  • Uniapp上架苹果4.3a被拒?我摸出了躺过的万能公式!
  • 2026年,苦荞快餐粉引领健康新潮流