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

最左前缀原则和覆盖索引相关问题

最左前缀原则覆盖索引相关问题

索引为abc,where里面和select里面是ac,需要回表吗

结论:不需要


  1. 最左前缀原则
    WHERE a AND c 无法高效使用 (a,b,c) 中的 c 列(缺少 b),只能基于 a 定位后再过滤。
  2. 覆盖索引
    若查询字段全在索引中,则无需回表(否则需回表)。
  3. 回表 = 随机I/O
    二级索引返回的主键是离散值,回表时访问磁盘位置不连续。
  4. 索引存储 vs 数据存储
    二级索引按索引键排序,数据按主键排序,二者顺序不一致导致回表效率低。

总结:

  • WHERE条件中使用了a和c:索引只能使用a来快速定位,然后扫描所有a匹配的索引条目,并在索引条目中过滤c的条件(这时不需要回表,因为c在索引中)。

  • 如果SELECT的列只有a和c(或者再加上b),那么整个查询只需要在索引中就能完成(覆盖索引),不需要回表。

  • 如果SELECT的列包含了索引中没有的列,那么就需要回表。


注:学习SQL中最左前缀原则覆盖索引相关问题

  • 学习的视频:141-数据准备与索引失效的11种情况1_哔哩哔哩_bilibili

  • 答案来源:deepseek

http://www.sczhlp.com/news/570.html

相关文章:

  • 【LeetCode 142】算法:环形链表 II
  • Gin框架介绍
  • 正则表达式中的元字符
  • 7/27
  • I2C
  • 小新Pad2022刷机记录
  • 每日随笔
  • 01API语法与路由配置详解
  • 图 - -刘-j-x
  • 02路由配置与参数解析详解
  • 03Gin中间件开发与鉴权实践
  • day27
  • 浅析扫描线
  • 入门
  • CRUD
  • 暑期周总结(五)
  • 用 Python 实现多干扰线图像验证码的识别系统
  • Python 实现多干扰线图像验证码识别
  • 学习链接
  • helm环境快速部署实战
  • PlantUML绘制时序图
  • Datawhale AI夏令营 Dify入门 Task05 智能客服
  • ICPC 2024 网络赛(I)
  • LED控制原理
  • 【ESP8266】Vscode + platformIo + Esp8266 新建工程 关键步骤
  • Revo Uninstaller Pro专业版领取:2025最佳Windows软件卸载工具
  • 北大 2024 强基数学
  • 付老师名言
  • [羊城杯 2021]Baby_Forenisc-内存取证-Volatility 2工具下载使用- Volatility 2.6 的 Linux 免安装版(Standalone 版本)
  • 开发集合控件的拖拽流程优化——以TreeView为例