B+树

news2024/11/15 11:43:15

B+树

B+树是对B树的一种变形树,它与B树的差异在于:

  • 非叶结点仅具有索引作用,也就是说,非叶子结点只存储key,不存储value

  • 树的所有叶结点构成一个有序链表,可以按照key排序的次序遍历全部数据

B+树存储数据

若参数M选择为5,那么每个结点最多包含4个键值对,我们以5阶B+树为例,看看B+树的数据存储

在这里插入图片描述

B+树和B树的对比

B+ 树的优点在于

  • 由于B+树在非叶子结点上不包含真正的数据,只当做索引使用,因此在内存相同的情况下,能够存放更多的key

  • B+树的叶子结点都是相连的,因此对整棵树的遍历只需要一次线性遍历叶子结点即可。而且由于数据顺序排列并且相连,所以便于区间查找和搜索。而B树则需要进行每一层的递归遍历。

B树的优点在于

  • 由于B树的每一个节点都包含key和value,因此我们根据key查找value时,只需要找到key所在的位置,就能找到value,但B+树只有叶子结点存储数据,索引每一次查找,都必须一次一次,一直找到树的最大深度处,也就是叶子结点的深度,才能找到value。
B+树在数据库中的应用

在数据库的操作中,查询操作可以说是最频繁的一种操作,因此在设计数据库时,必须要考虑到查询的效率问题,在很多数据库中,都是用到了B+树来提高查询的效率
在操作数据库时,我们为了提高查询效率,可以基于某张表的某个字段建立索引,就可以提高查询效率,那其实这个索引就是B+树这种数据结构实现的

未建立主键索引查询

在这里插入图片描述

执行 select * from user where id=18 ,需要从第一条数据开始,一直查询到第6条,发现id=18,此时才能查询出
目标结果,共需要比较6次

建立主键索引查询

在这里插入图片描述

区间查询

执行 select * from user where id>=12 and id<=18 ,如果有了索引,由于B+树的叶子结点形成了一个有序链表,
所以我们只需要找到id为12的叶子结点,按照遍历链表的方式顺序往后查即可,效率非常高

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

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

相关文章

使用影刀RPA拆分excel数据

首先&#xff0c;要使程序有一定的兼容性&#xff0c;即增加互动性&#xff0c;认为选择要拆分的文件和拆分的依据列&#xff0c;可以利用影刀中的‘打开选择对话框’和‘打开输入对话框’来实现&#xff0c;这样一来便不用考虑待拆分excel的路径问题获取1中选择的依据拆分列&a…

登录框界面之渗透测试思路总结

前言 大家都知道&#xff0c;渗透的过程中&#xff0c;遇见登录框是很常见的。下面就简单总结一下渗透中遇见登录页面的思路&#xff1a; 首先登录页面可能产生哪些漏洞呢&#xff1f; 1、弱密码与暴力破解 2、万能密码、SQL与XSS&#xff08;注入&#xff09; 3、登录时&…

渗透测试自动化报告脚本-----Nessus报告自动化解析--1-html解析

本专栏内容主要用于渗透测试工程师应对在工作中的自动化操作难题&#xff0c;高效摸鱼专用 解决问题 1、对Nessus导出的html报告进行自动化的提取操作&#xff0c;包括IP地址&#xff0c;漏洞个数&#xff0c;漏洞等级&#xff0c;漏洞描述&#xff0c;CVE编号等 2、由于Nes…

配置文件的优先级及maven打包和参数(port)的修改

1、配置文件的优先级 SpringBoot中支持五种配置格式:优先级&#xff1a;命令行参数(–xxxxxx) > java系统属性(-Dxxx xxx) > application.properties > application.yml > application.yaml 虽然springboot支持多种格式配置文件&#xff0c;但是在项目开发时&…

智能仓储货架的电子标签解决方案

近年来&#xff0c;电商和新零售行业的迅猛增长催生了仓储管理场景和运营模式的变革。企业不断寻求“低成本”和“更可靠”的解决方案&#xff0c;加快了仓储管理从粗放型向精细化转变的步伐。仓储管理的技术变革从机械化走向自动化&#xff0c;仓储数智化成为主流趋势。在这个…

chatgpt赋能python:Python语言冒泡排序-深入了解

Python语言冒泡排序 - 深入了解 冒泡排序是一种基本的排序算法&#xff0c;也是学习排序算法的入门算法之一。在Python中&#xff0c;我们可以很容易地实现冒泡排序。 冒泡排序的原理 冒泡排序的原理很简单&#xff0c;大概分为以下几个步骤&#xff1a; 比较相邻的元素&am…

Jnpf低代码开发平台

一、写在前面 低代码开发平台&#xff0c;一个号称能在几分钟的时间里开发出一套公司内部都可使用的应用系统开发工具。 很多人或许都隐隐听说过低代码&#xff0c;因为低代码不仅远名国外&#xff0c;国内的腾讯、阿里、华为、网易、百度等科技巨头也纷纷入局&#xff0c;足以…

蓝桥杯专题-试题版-【打印十字图】【剪格子】【错误票据】【翻硬币】

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列 &#x1f449;关于作者 专注于Android/Unity和各种游…

【软考网络管理员】2023年软考网管初级常见知识考点(29)-进程管理与存储管理

涉及知识点 进程管理&#xff0c;进程状态&#xff0c;死锁问题&#xff0c;存储管理&#xff0c;页面置换算法&#xff0c;软考网络管理员常考知识点&#xff0c;软考网络管理员网络安全&#xff0c;网络管理员考点汇总。 原创于&#xff1a;CSDN博主-《拄杖盲学轻声码》&…

高速电路设计系列分享-熟悉JESD204B(中)

目录 概要 整体架构流程 技术名词解释 技术细节 1.数据链路层 小结 概要 提示&#xff1a;这里可以添加技术概要 随着高速ADC跨入GSPS范围&#xff0c;与FPGA(定制ASIC)进行数据传输的首选接口协JESD204B。为了捕捉频率范围更高的RF频谱&#xff0c;需要宽带RFADC。在其推动下…

elasticsearch 明明有index但是查不出来

最近用python去query elastricsearch的data&#xff0c;但是我再kibana明明看到有&#xff0c;但是就是查不出来 因为涉及公司隐私&#xff0c;就不截图直接举例子了&#xff0c;我在 discover里面看到的是某条数据的index是 xxx-sss-a-b&#xff0c;但是我写query是xxx-sss-a-…

Spring Boot中的@EnableAutoConfiguration注解

Spring Boot中的EnableAutoConfiguration注解 介绍 Spring Boot是一个非常流行的Java框架&#xff0c;它可以快速创建基于Spring的应用程序。Spring Boot提供了许多自动配置功能&#xff0c;使得开发者可以非常容易地创建一个可运行的应用程序。其中&#xff0c;EnableAutoCo…

macOS Sonoma 14beta 2 With OpenCore 0.9.3 and winPE双引导黑苹果镜像

镜像特点 完全由黑果魏叔官方制作&#xff0c;针对各种机型进行默认配置&#xff0c;让黑苹果安装不再困难。系统镜像设置为双引导分区&#xff0c;全面去除clover引导分区&#xff08;如有需要&#xff0c;可以自行直接替换opencore分区文件为clover引导文件&#xff09;备注…

【江西省研究生数学建模竞赛】题目之一 蒸汽发生器倒U型管内液体流动 详细的数学模型及参考文献

【江西省研究生数学建模竞赛】题目之一 蒸汽发生器倒U型管内液体流动 1 题目 2023年江西省研究生数学建模竞赛题目之一 荧汽发生器倒U型管内液体流动 PACTEL压水堆整体测试设备在2009年建造&#xff0c;用于带有垂直倒U型管莱汽发生器的压水堆热液压相关的安全性研究&#x…

MobaXterm 的安装-迅为STM32MP157开发板

MobaXterm 是远端电脑的终极工具箱&#xff0c;作为一个单窗口程序&#xff0c;为程序员&#xff0c;网站管理员&#xff0c;IT 管理员以及更多需要处理远端任务的用户提供了很多实用的功能。MobaXterm 为 windows 桌面提供了所有重要的远端网络工具(SSH, X11, RDP, VNC, FTP, …

Spring Boot中的事务隔离级别

Spring Boot中的事务隔离级别 介绍 Spring Boot是一个流行的Java框架&#xff0c;它提供了许多方便的注解和工具&#xff0c;使得数据库操作变得更加容易。其中&#xff0c;事务隔离级别是Spring Boot中一个非常重要的概念&#xff0c;它可以帮助开发者控制数据库操作的并发性…

postman接口测试之发送post请求

目录 前言&#xff1a; 一、新建目录文件夹 二、新建请求&#xff08;api接口&#xff09; 三、添加请求方法、url、及参数 四、发送post请求并且查看请求结果 前言&#xff1a; Postman是一种广泛使用的API开发和测试工具&#xff0c;可以帮助测试人员快速创建请求并检查…

进程与进程间通信

一、什么是进程&#xff1f; 进程&#xff08;Process&#xff09;是计算机中的程序关于某数据集合上的一次运行活动&#xff0c;是系统进行资源分配的基本单位&#xff0c;是操作系统结构的基础。进程实体由程序段、数据段以及进程控制块 &#xff08;PCB&#xff09; 组成。…

java项目之旅游资源网站ssm源码

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于ssm的旅游资源网站。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 旅游资源网站源码下载地址&#xff1a; https://download…

【MOOC 测验】第4章 网络层

1‌、下列关于路由算法描述错误的是&#xff08; &#xff09; A. 链路状态算法是一种全局路由算法&#xff0c;每个路由器需要维护全局状态信息B. OSPF 是一种域内路由协议&#xff0c;核心是基于 Dijkstra 最低费用路径算法C. RIP 是一种域内路由算法&#xff0c;核心是基…