深入了解数据库的索引分类以及回表查询原理

news2024/10/2 14:21:17

索引的分类

 在InnoDB存储引擎中的又可以分为以下两种

 聚集索引的选取规则

如果有主键,主键索引就是聚集索引。

如果不存在主键,将会使用第一个唯一(UNIQUE)索引作为聚集索引

如果表没有主键,或者没有合适的唯一索引,那么就会自动生成一个rowid作为隐藏的聚集索引

聚集索引的形状

比如一张表存在一个主键,那么它的主键构建的主键索引就会构成一个聚集索引,为B+Tree形状,将其规划为一行一行的数据,每个叶子结点下面挂着的是这一行的值

 如果此时呢,我再给name字段加上一个索引,根据聚集索引只有一个的原则,它就会生成二级索引,每个叶子结点下面挂着的是对应的id的值

 加上索引以后呢,怎么查找的呢?(回表查询)

还是上面的表,我们已经加上了id的主键索引,再给name加上了索引以后,执行下面的语句

select * from user where name = '张三'

 可以看到是根据name进行查询的,他会先走聚集索引吗?

答案是肯定不会的,那样没办反快速找到name,也就是会优先走二级索引,快速定位到我们要找name字段,之后呢,我们就能够拿到id

拿到id以后就可以了吗?

答案也是不可以的,我们要的是全部的数据,因此还会继续往下走,进入了聚集索引,然后呢,就开始找到了id对应的这一行的数据,这也就是回表查询

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/788065.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

机场室内定位导航系统解决方案:提升旅客体验和机场运营效率

旅游业已开始回暖,作为旅客流动的核心节点,正逢暑假亲子出行,日益增长的客流量会对机场的运营和管理带来相当的冲击和挑战。 为提升旅客的出行体验和机场的优化运营管理效率,华安联大推荐采用机场室内定位导航系统解决方案。 基于…

【力扣刷题 | 第二十二天】

目录 前言: 63. 不同路径 II - 力扣(LeetCode) 343. 整数拆分 - 力扣(LeetCode) 总结: 前言: 今天我们爆刷动态规划章节的题目,相关的算法理论介绍我也有写过文章:【夜…

TCL(Tool Command Language)学习(一)-----基本指令

一、置换语句 变量置换$ TCL解释器会将认为$后面为变量名,将变量置换乘它的值, []命令置换、[]内是一个独立的TCL语句 \反斜杠置换 换行符。空格、[、$等被TCL解释器当作特殊符号对待的字符,加上反斜杠后变成普通字符 “”CL对双引号中…

Rocket-Spring Cloud Stream

一.Spring Cloud Stream简介 1.微服务中会经常使用消息中间件,通过消息中间件在服务与服务之间传递消息,例如RabbitMQ、Kafka和RocketMQ,无论使用哪一种消息中间件和服务之间都有一点耦合性,这个耦合性指的是原来使用RabbitMQ&am…

Python获取股票数据——以沪深300成分股为例

目录 1、Baostock2、Tushare pro版3、AKshare4、聚宽量化平台 需求是下载比如从2020-01-01到2022-12-31区间的沪深300成分股每支股票的日K线数据,没错这是个面板数据,原本以为直接通过Python接口可以直接下载到,因为之前找的上证综指啥的用R的…

软著代码整理工具(针对cpp代码),python实现

一. 内容简介 软著代码整理工具(针对cpp代码),python实现 二. 软件环境 2.1vsCode 2.2Anaconda version: conda 22.9.0 2.3代码链接 https://gitee.com/JJW_1601897441/csdn 三.主要流程 3.1 格式要求 代码语法要求 对软件著作权提交源代码是提供原始的代码…

AcWing241. 楼兰图腾(树状数组)

输入样例: 5 1 5 3 2 4输出样例: 3 4解析: 以某个点 i 为最低点的 V 的数量,为 i 左侧和右侧比 a[ i ] 大的数量 a,b 的乘积。 但是,直接求这两个数的复杂度为O(n),则整个复杂度为O( n^2 )&am…

TortoiseGit安装

1、TortoiseGit简介 TortoiseGit是基于TortoiseSVN的Git版本的Windows Shell界面。它是开源的,可以完全免费使用。 TortoiseGit 支持你执行常规任务,例如commit、显示日志、区分两个版本、创建分支和标签、创建补丁等。 2、TortoiseGit下载 (1)Tortois…

MySQL高级篇第2章(MySQL的数据目录)

文章目录 1、MySQL8的主要目录结构1.1 数据库文件的存放路径1.2 相关命令目录1.3 配置文件目录 2、数据库和文件系统的关系2.1 查看默认数据库2.2 数据库在文件系统中的表示2.3 表在文件系统中的表示2.3.1 InnoDB存储引擎模式2.3.2 MyISAM存储引擎模式 2.4 小结 1、MySQL8的主要…

论文笔记--Skip-Thought Vectors

论文笔记--Skip-Thought Vectors 1. 文章简介2. 文章概括3 文章重点技术3.1 Skip Thought Vectors3.2 词表拓展 4. 文章亮点5. 原文传送门6. References 1. 文章简介 标题:Skip-Thought Vectors作者:Ryan Kiros, Yukun Zhu, Ruslan Salakhutdinov, Rich…

【设计模式——学习笔记】23种设计模式——桥接模式Bridge(原理讲解+应用场景介绍+案例介绍+Java代码实现)

问题引入 现在对不同手机类型的不同品牌实现操作编程(比如:开机、关机、上网,打电话等),如图 【对应类图】 【分析】 扩展性问题(类爆炸),如果我们再增加手机的样式(旋转式),就需要增加各个品牌手机的类,同样如果我们…

JDK9 接口特性(heima)

JDK9 接口特性(heima) 将log方法私有化

04. Idea集成Docker

目录 1、前言 2、开启docker远程 2.1、配置远程访问模式 2.2、重启docker服务 2.3、验证 3、Idea配置Docker 3.1、配置证书登录 4、创建Dockerfile 4.1、编写Dockerfile 4.2、配置启动项 4.3、访问接口 1、前言 上一节中,我们介绍了Dockerfile的方式构建…

MURF20100CT-ASEMI快恢复对管20A 1000V

编辑:ll MURF20100CT-ASEMI快恢复对管20A 1000V 型号:MURF20100CT 品牌:ASEMI 封装:TO-220F 恢复时间:50ns 正向电流:20A 反向耐压:1000V 芯片大小:102MIL*2 芯片个数&…

C语言每日一题:4.消失的数字+数字在升序数组中出现的次数+整数转换

消失的数字: 思路1:排序遍历 1.使用qsort排序数组判断当前数值1是否是数组下一个元素的数值。 2.如果是一直循环注意数组越界,如果不是那么当前的数组的数值1就是消失的数。 3.存在0——n的数字是第n个数没有了。循环过程中从头到尾也找不到这…

C++ 哈希的应用【位图】

✨个人主页: 北 海 🎉所属专栏: C修行之路 🎃操作环境: Visual Studio 2022 版本 17.6.5 文章目录 🌇前言🏙️正文1、问题一2、位图概念3、位图的模拟实现3.1、基本思路3.2、set3.3、reset3.4、…

从电商指标洞察到运营归因,只需几句话?AI 数智助理准备好了!

Lily 是名入职不久的电商运营助理,最近她想要根据 2022 年的客单价情况,分析品牌 A 在不同电商渠道的用户行为和表现,并提供一些有价值的洞察和建议给客户。然而在向技术人员提报表需求后,技术人员以需求排满为借口拒绝了。 Lily …

STM32CUBEMX配置 定时器中断 和 上升沿中断(实现检测1s以内的脉冲个数)

———————————————————————————————————— ⏩ 大家好哇!我是小光,嵌入式爱好者,一个想要成为系统架构师的大三学生。 ⏩最近在开发一个STM32H723ZGT6的板子,使用STM32CUBEMX做了很多驱动&#x…

速锐得开发社区-新一代汽车网络通信技术CAN FD的特点归纳

随着汽车工业的快速发展,汽车逐渐走向智能化,功能也越来越丰富,例如特斯拉、比亚迪、理想汽车为代表,在车载导航、驻车雷达、胎压监测、倒车影像、无钥匙启动、定速巡航、自动泊车、高级辅助驾驶系统、自动驾驶、域控制器、智能网…

慎投!中科院2区TOP期刊被标记为“On Hold”!

近日,小编从科睿唯安旗下的“Master Journal List”官网查到,知名老牌期刊Chemosphere竟然被标记为“On Hold”状态!究竟是怎么回事呢? 中科院TOP期刊标记为“On Hold” 出版社:Elsevier ISSN:0045-6535 …