当前位置: 首页 > 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.vanclimg.com/news/950.html

相关文章:

  • 【LeetCode 142】算法:环形链表 II
  • Gin框架介绍
  • 正则表达式中的元字符
  • sequence的启动
  • L. Dynamic Convex Hull 题解
  • 实时通信技术深度对比:WebSocket与SSE的最佳实践(1018)
  • 微服务架构的轻量级解决方案(6064)
  • WebSocket服务端的高效处理(1104)
  • 服务端推送技术的现代实现(6185)
  • 异步编程在Web开发中的应用(1191)
  • 从零开始构建高性能实时聊天系统:Hyperlane框架实战指南(3242)
  • 中间件架构设计模式:从Express到现代Rust框架的演进(4232)
  • 中间件架构的优雅实现(8032)
  • Rust异步Web框架性能突破之路(1499)
  • 实战项目:文件分块上传系统(5527)
  • spring-data-JPA代码审计
  • 不同Linux发行版Node安装指南
  • 虚化引擎游戏解包工具
  • Qcom dcvs_epss.c 驱动解析.
  • AirSim+PX4+QGC实现无人机自动避障
  • js基础第五天
  • 简单了解高阻抗(High-Z)
  • docker安装
  • 二进制简史:从理论到芯片
  • js基础第四天
  • 同时点亮LED、数码管以及点阵
  • 关于跨域的一点新理解
  • js基础第三天
  • 龙哥量化:股票期货- 精华资料目录
  • 2025省选组合数学笔记