【MySQL】查询原理 —— B+树查询数据全过程

news2024/9/30 8:44:45

使用B+树作为索引结构的原因:


一种自平衡树:

B+树在插入和删除的时候节点会进行分裂和合并操作,以保持树的平衡,存在冗余节点,使得删除的时候树结构变化小,更高效。

高度不会增长过快,查询磁盘I/O次数减少:

B+树是一种多叉树,非叶子节点只保存主键或索引值和页面指针,使得每一页能够容纳更多记录,内存中存放更多索引,容易命中缓存,查询I/O次数减少。

范围查询能力强:

叶子节点通过链表连接定位到叶子节点的起点后,只需要顺序扫描链表后续的数据,非常高效。

根节点开始,根据键值大小确定位置于左/右子树

非叶子节存储主键和页号,通过页号定位到叶子节点(默认16k大小),可存储多条数据。

通过页目录索引快速找到记录,页目录每个槽指向对应分组的最大记录。

通过二分查询,利用槽定位数据所在组。

InnoDB规定:

第一个分组只有一条记录

中间的分组4-8条记录

最后一个分组1-8条记录

B+树和B树的区别:

B+树更加稳定,平均,都要从根结点查询到叶子节点。

B+树便于区间查找,B树只能每一层遍历查找。

B树每个节点都存储数据,B+树存储key和指针,内存中可存放更多索引页,减少磁盘查询次数。

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

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

相关文章

[大语言模型-论文精读] 悉尼大学-ACL2024-提升大型语言模型的复杂视觉推理能力

[大语言模型-论文精读] 悉尼大学-ACL2024-提升大型语言模型的复杂视觉推理能力 目录 文章目录 [大语言模型-论文精读] 悉尼大学-ACL2024-提升大型语言模型的复杂视觉推理能力目录论文简介0. 摘要2. 相关工作2.1 视觉-语言领域的推理研究2.2 用于视觉-语言分析的大型语言模型 3 …

如何通过SNP Glue简化SAP数据迁移至云数据湖?

有一种更简单的方法可以将关键SAP数据导入云数据湖,而不需要长时间的不可靠数据加载。您还可以仅发送自上次采集后更新的数据,接近于实时地复制数据。我们的专家将向您介绍他们如何使用SNP Glue为我们的客户实现这一点,包括: ■ …

如何提取b站的视频字幕,下载视频

打开视频地址 按F12打开—开发者工具 在开发者工具打开Network 过滤器关键字: 自动生成字幕:ai_subtitle 自制:json 打开/关闭字幕 刷新页面 找到字幕 点选字幕的respond 将方框中的内容复制; 复制到:https://www.drea…

无人机视角垃圾检测数据集,26700余张无人机图像,超过4万标注信息,共3.6GB数据量,可用于环卫快速检查,垃圾快速定位等应用。

无人机视角垃圾检测,26700余张无人机图像,超过4万标注信息,共3.6GB数据量,可用于环卫快速检查,垃圾快速定位等应用。 名称 无人机视角垃圾检测数据集 规模 图像数量:26700余张标注信息:超过4…

Kafak入门技术详解

抱歉,没有太多的时间进行详细校对 目录 一、Kafka简介 1.消息队列 1.1为什么需要消息队列 1.2消息队列 1.3消息队列的分类 1.4P2P和发布订阅MQ的比较 1.5消息系统的使用场景 1.6常见的消息系统 2.Kafka简介 2.1简介 2.2设计目标 2.3 kafka核心的概念 二…

英语每日一句

每日一句 Confidence is contagious. So is a lack of confidence. 自信是有感染力的,缺乏自信也是。 文斯隆巴迪 今日单词 lack /lk/ v. 没有;缺乏 n. 缺乏,短缺;不足 词组: no lack of 不缺乏;…

快充慢充与超充:未来充电技术的三驾马车

快充、慢充与超充:未来电动汽车充电技术的三驾马车 随着电动汽车的普及,充电技术的快速发展成为推动这一行业进步的关键因素之一。快充、慢充和超充作为电动汽车充电技术的三大主流方式,各自具有独特的优势和应用场景。本文将深入探讨这三种…

ChatGPT+R语言强强联合,数据分析不再难!回归与混合效应模型、多元统计分析、结构方程模型(SEM)(lavaan)、Meta分析、贝叶斯回归等应用

目录 第一章 生态环境数据统计概述及基础 第二章 GPT&R:回归与混合效应模型 第三章 GPT&R:多元统计分析 第四章 GPT&R:结构方程模型(SEM)(lavaan) 第五章 GPT&R&#xff1…

EAdmin极简社区-基于LayUI模板制作的一套社区程序

EAdmin极简社区是基于LayUI模板制作的一套社区程序,后台支撑采用了ThinkPHP5框架。 增加了锁屏功能; 附件上传插件增加了进度条指示,并能根据需求上传大文件; 后台增加了积分记录和管理员操作记录; 前台编辑器增加…

Android15车载音频之CarAudioService加载解析各音区参数过程(八十七)

简介: CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布:《Android系统多媒体进阶实战》🚀 优质专栏: Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏: 多媒体系统工程师系列【原创干货持续更新中……】🚀 优质视频课程:AAOS车载系统+…

Delphi实现计算器——状态机

成品展示: 方案: 采用状态机和静态工厂模式实现。 1.使用工厂方法模式来创建操作对象 定义了一个抽象的操作类TOperation,其中声明了Calculate方法用于执行具体的计算。 然后针对不同的操作(加、减、乘、除、取模)分别创建了具体的操作类,如TAddOp…

大屏娱乐体验新标杆:海信发布全新一代AI电视

在金秋送爽的9月29日,海信以一场盛大的“BIG PLAN百吋风暴”秋季新品发布会,正式揭开了AI电视新时代的序幕。 作为本场发布会上最耀眼的明星,海信AI电视E7N系列凭借无与伦比的AI画质技术和极致性能,引领大屏娱乐体验迈入全新境界&…

vue3 挂载全局公共方法/变量/数据

前言: 最近开始接触vue3, 需要全局挂在公共函数,Vue.prototype已经不再适用vue3,官网转而推荐使用 app.config.globalProperties 或者 provide; app-config-globalproperties 官方地址如下: https://cn.vuejs.org/ap…

数学建模--什么是数学建模?数学建模应该怎么准备?

前言 这是去年底学数学建模老哥的建模课程笔记;未来本人将陆陆续续的更新数学建模相关的一些基础算法,大家可以持续关注一下;提示:数学建模只有实战才能提升,光学算法没有啥意义,也很难学的很懂。 文章目录…

RNDIS网卡应用看这篇!合宙Air780EP低功耗4G模组AT开发示例

Air780EP是合宙的低功耗4G模组之一,支持全系列的AT指令以及LuatOS脚本二次开发。 本文应各位大佬邀请,特别讲解Air780EP模组AT开发RNDIS网卡应用示例。 本文同样适用于以下型号: Air700ECQ/Air700EAQ/Air700EMQ Air780EQ/Air780EPS/Air780E…

SPDK从安装到运行hello_world示例程序

SPDK从安装到运行示例程序 #mermaid-svg-dwdwvhrJiTcgTkVf {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-dwdwvhrJiTcgTkVf .error-icon{fill:#552222;}#mermaid-svg-dwdwvhrJiTcgTkVf .error-text{fill:#552222;s…

True NAS禁用ipv6

在 TrueNAS Scale 中,禁用 IPv6 的方法如下:12 进入 System->Advanced->Sysctl,设置一个 sysctl 可调整变量 net.ipv6.conf.all.disable_ipv6,值为 1,以完全禁用 IPv6。\

zy78_C#窗体绘图

文章目录 1.绘画的命名空间2.像素和坐标系3.颜色4.Graphics类的部分方法5.画刷(Brush)6.路径(Path)7.OnPaint方法8.绘图程序8.1源代码:8.2代码解释1. 构造函数和组件初始化2. 绘制直线3. 清除窗体4. 绘制椭圆5. 更改填…

【C++复习】多态{深入理解多态底层}

文章目录 介绍windows下堆栈相对位置析构函数复习override和final和重载/重定义/重写抽象类多态原理回顾虚基表指针单继承多态底层打印虚函数表多继承多态底层c输出类成员函数地址再次理解多态早期绑定/晚期绑定 介绍 什么是多态 多态(Polymorphism)是面…

MySQL之分库分表后带来的“副作用”你是怎么解决的?

目录标题 一、垂直分表后带来的隐患二、水平分表后带来的问题1.多表联查问题2.增删改数据问题3.聚合操作问题 三、垂直分库后产生的问题1.跨库join问题2.分布式事务问题3.部分业务库依然存在的性能问题 四、水平分库后需要解决的问题1.聚合操作和连表问题2.数据分页问题3.ID主键…