索引覆盖与回表

索引覆盖与回表懂的越多 不懂的越多上回书说到 什么情况下 索引下推没办法提高 sql 查询效率 表 info 主键 id 名称 name 值 value 别名 realname 对于 info 表 我们现在有 name value 联合索引

懂的越多,不懂的越多

上回书说到:什么情况下,索引下推没办法提高sql查询效率?

info
主键 id
名称 name
value
别名 realname

对于info表,我们现在有(name,value)联合索引

显而易见的是,不使用索引下推的话,将导致如果需要查询realname这一列,那么我们就需要先根据一个索引查询,然后回表一次,然后再根据另一个索引寻找符合的数据。

解决方案很简单,索引数据是存储在索引树的节点上的,所以是不需要进行回表查询,那么两种解决方案,第一种,不查询realname不就可以了,第二种把realname添加一个索引就可以了,这就是索引覆盖。

索引覆盖,顾名思义,用索引覆盖你需要查找的值。

常用的mysql数据库的索引使用的是B+树,建立一个索引,就是建一个B+树,而普通索引和聚簇索引的区别就在于,叶子节点存储的数据不同,普通索引存储的是主键,而聚簇索引的叶子节点存储的是行数据,

索引执行顺序:先搜索普通索引树,找到符合条件的叶子节点(主键),然后去聚簇索引拿到对应的行数据。这个也就是回表。

当我们查询的数据都是索引的话,就可以不用回表去查询聚簇索引对应的行记录,这样就大大提升了查询效率。

创建主键的时候自动给主键添加了索引,且该索引为唯一性索引

这句话经常听到,可是还是那句老话,不谈场景的技术,都是瞎扯,就比如我们建立表结构时,用的不是单一主键,而是联合主键,那么这个时候有几个索引哪(滑稽保命)?建立的索引是不是聚簇索引哪(滑稽保命)?

学习使我快乐,问题使我进步

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/177427.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午7:32
下一篇 2026年3月26日 下午7:33


相关推荐

  • Delphi XE5 常见问题解答

    Delphi XE5 常见问题解答DelphiXE5常见问题解答有关于新即时试用的问题吗?请看看RADStudio即时试用常见问答.常见问题什么是Delphi?Embarcadero?Delphi?XE5是易于学习的应用开发,适合构建针对Android和iOS的真正原生应用、并将它们快速应用到应用商店和企业的团队。使用相同的源代码库构建应用,无需牺牲应用质量、连通性或性能。通过原生An…

    2022年7月18日
    15
  • ArrayList和LinkedList区别及使用场景

    ArrayList和LinkedList区别及使用场景ArrayList 和 LinkedList 区别及使用场景 1 LinkedList 和 ArrayList 的差别主要来自于 Array 和 LinkedList 数据结构的不同 ArrayList 是基于数组实现的 LinkedList 是基于双链表实现的 另外 LinkedList 类不仅是 List 接口的实现类 可以根据索引来随机访问集合中的元素 除此之外 LinkedList 还实现了 Deque 接口 Deque 接

    2026年3月26日
    3
  • Redash — Redash问题排查

    Redash — Redash问题排查向导问题描述排查问题描述 redash 所在机器硬盘做完降配后 再次启动 redash worker 总是再报错 报权限问题 表现是 redash 界面正常 但是查询时 请求发到 redashserver 后 worker 并没有正确的去查库 导致页面上显示一直在查 排查 redash 我是 docker 部署 root 用户的 按理说是没有权限问题的 但是不知道为什么换完磁盘后出现了这个问题 这个主要是 tmp 目录需要加 1777 权限 但是我看到我的 tmp 目录权限是没有问题的 突然想到 报错只有 worker 在报错

    2026年3月19日
    2
  • [分布式]:分布式系统的CAP理论

    [分布式]:分布式系统的CAP理论2000年7月,加州大学伯克利分校的EricBrewer教授在ACMPODC会议上提出CAP猜想。2年后,麻省理工学院的SethGilbert和NancyLynch从理论上证明了CAP。之后,CAP理论正式成为分布式计算领域的公认定理。CAP理论概述一个分布式系统最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition…

    2022年6月16日
    32
  • pycharm单步调试

    pycharm单步调试debug 模式点击运行标志旁的小甲虫标志级进入 debug 模式 也可以右键代码进入 debug 模式中的按键解释断点设置在代码前左键点击会生成红色的点开始 debug 点击小甲虫标志之后 代码会停在红点的前一行 并且会把每一行的数据大小 类型给显示在对应的代码后面 控制框也可看到之后可以使用单步调试也就是 F8 让他逐行运行代码运行经过数据转入代码之后可以看到 batch xs batch ys 中的数据信息 包括他的最值 类型 元素数量以及 shape 当需要跳过循环的时候可以使用 F9 跳到光标

    2026年3月27日
    2
  • tomcat宕机自动重启和每日定时启动tomcat

    tomcat宕机自动重启和每日定时启动tomcat在项目后期维护中会遇到这样的情况,tomcat在内存溢出的时候就出现死机的情况和遇到长时间不响应,需要人工手动关闭和重启服务,针对这样的突发情况,希望程序能自动处理问题而不需要人工关于,所以才有了目前的需求。一、设置tomcat定时启动1,首先将tomcat注册为服务,先打开tomcat的bin目录下service.bat文件,修改下面的值,这是sevvice的注册名称和显

    2022年7月23日
    12

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号