当前位置: 首页 > news >正文

探索数据存储的奥秘:深入理解B树与B+树

  • key value 类型的数据
  • 红黑树(最优二叉树,内存最优),时间复杂度:O(logn),调整方便;一个结点分出两个叉
  • B树一个节点可以分出很多叉
  • 数据量相等的条件下:红黑树的层数很高,B树的层数就会比较低(一个节点可以分出很多叉)
  • 层数比较低,查找数据的时间比较少;层数影响查询数据的次数
数据以文件的形式存储
  • 为什么内存(用红黑树)不用B树?
减少寻址次数,增加对比次数(B树);减少对比次数,增加寻址次 数(红黑树);磁盘寻址时间较长,所以要减少寻址次数,用B树。
  • 数据库底层的数据结构是B+树,提高查询效率。可用于区间查询
如: select * from user where id>=10 and id<=18
  • B+ 树的优点在于:
  1. 由于B+树在非叶子结点上不包含真正的数据,只当做索引使用,因此在内存相同的情况下,能够存放更多的key。
  2. B+树的叶子结点都是相连的,因此对整棵树的遍历只需要一次线性遍历叶子结点即可。而且由于数据顺序排列并且相连,所以便于区间查找和搜索。而B树则需要进行每一层的递归遍历。
  • B树的优点在于:
  1. 由于B树的每一个节点都包含key和value,因此我们根据key查找value时,只需要找到key所在的位置,就能找到value,但B+树只有叶子结点存储数据,索引每一次查找,都必须一次一次,一直找到树的最大深度处,也就是叶子结点的深度,才能找到value。

相关文章:

探索数据存储的奥秘:深入理解B树与B+树

key value 类型的数据红黑树&#xff08;最优二叉树&#xff0c;内存最优&#xff09;&#xff0c;时间复杂度&#xff1a;O&#xff08;logn&#xff09;,调整方便&#xff1b;一个结点分出两个叉B树一个节点可以分出很多叉数据量相等的条件下&#xff1a;红黑树的层数很高&am…...

Web渗透测试之XSS跨站脚本之JS输出 以及 什么是闭合标签 一篇文章给你说明白

目录 闭合标签 XSS之js输出 闭合标签 封闭标签 达到 让标签值不当成 一个属性值来展示 从而达到xss注入的效果 "> 为了想办法闭合前面的标签,不用也行成功率高一些 攻击方法 "><script>confirm(1)</script>, 其中 "> 我们称之为完成闭合…...

EasyExcel的应用

一、简单使用 引入依赖&#xff1a; 这里我们可以使用最新的4.0.2版本&#xff0c;也可以选择之前的稳定版本&#xff0c;3.1.x以后的版本API大致相同&#xff0c;新的版本也会向前兼容&#xff08;3.1.x之前的版本&#xff0c;部分API可能在高版本被废弃&#xff09;&…...

VS Code的设置功能以及多层级的设置方式与解密

VS Code的Settings功能为用户提供了极大的灵活性和便利性&#xff0c;使得用户可以根据自己的需求和偏好来定制编辑器的行为和外观。 Settings 可以实现的具体功能 VS Code的设置项非常丰富&#xff0c;涵盖了各个方面&#xff0c;包括但不限于&#xff1a; 编辑器选项&…...

UI自动化测试框架playwright--初级入门

一、背景&#xff1a;UI自动化的痛点&#xff1a; 1、设计脚本耗时&#xff1a; 需要思考要如何模拟用户的操作&#xff0c;如何触发页面的事件&#xff0c;还要思考如何设计脚本&#xff0c;定位和操作要交互的元素、路径、位置&#xff0c;再编写代码逻辑&#xff0c;往复循…...

SQL多表联查、自定义函数(字符串分割split)、xml格式输出

记录一个报表的统计&#xff0c;大概内容如下&#xff1a; 多表联查涉及的报表有&#xff1a;房间表、买家表、合同表、交易表、费用表、修改记录表 注意&#xff1a;本项目数据库使用的是sqlserver&#xff08;mssql&#xff09;&#xff0c;非mysql。 难点1:业主信息&#…...

Fast API使用

相关的代码上都有注释&#xff0c;其中前端代码是用来提交表单的 此代码进行了跨域处理&#xff0c;允许前端直接提交表单&#xff0c;并正常返回 完整代码&#xff1a; from typing import Unionfrom fastapi import Header, Cookie from pydantic import BaseModel, Field f…...

LLM - Llama 3 的 Pre/Post Training 阶段 Loss 以及 logits 和 logps 概念

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/145056912 Llama 3 是 Meta 公司发布的开源大型语言模型&#xff0c;包括具有 80 亿和 700 亿参数的预训练和指令微调的语言模型&#xff0c;支持…...

MySQL 中删除重复数据 SQL 写法

要在 MySQL 中删除重复的数据并只保留一条&#xff0c;可以使用下面的方法&#xff08;要用的时候直接复制小改下条件和表名称即即可&#xff09; 方法一&#xff1a;使用 left join 子查询删除重复数据(推荐) 温馨提示&#xff1a;本人在 500w 数据下执行此 SQL 耗费 15s-30s…...

docker minio镜像arm64架构

minio版本为RELEASE.2021-09-03T03-56-13Z 原项目信创改造&#xff0c;服务器资源改为了arm64架构&#xff0c;统信uos docker镜像库内没有对应的minio镜像&#xff0c;当前镜像为拉取源码后&#xff0c;自编译打包镜像&#xff0c;亲测可用。 使用方式 将tar包导入到服务器…...

VUE3 监听器(watch)

在 Vue 3 中&#xff0c;监听器&#xff08;watch&#xff09;是用来观察响应式数据的变化&#xff0c;并在数据发生变化时执行相应操作的机制。watch 主要用于响应式数据变化时的副作用处理&#xff0c;比如异步操作、数据更新等。 1. 基础使用 在 Vue 3 中&#xff0c;watc…...

CAPL如何设置TCP/IP传输层动态端口范围

在TCP/IP协议中,应用程序通过传输层协议TCP/UDP传输数据,接收方传输层收到数据后,根据传输层端口号把接收的数据上交给正确的应用程序。我们可以简单地认为传输层端口号是应用程序的标识,这就是为什么我们说应用程序在使用TCP/IP协议通信时要打开传输层端口号或者绑定端口号…...

随记:有关Springboot项目中的时间格式实现的几种方式

1.注解 JsonFormat DateTimeFormat import com.fasterxml.jackson.annotation.JsonFormat; import org.springframework.format.annotation.DateTimeFormat;import java.time.LocalDateTime;public class Event {// 序列化和反序列化时生效JsonFormat(pattern "yyyy-MM…...

IntelliJ IDEA 优化设置

针对 Java 开发&#xff0c;IntelliJ IDEA 有许多优化设置&#xff0c;可以帮助提高代码编写、调试、构建和运行的效率。以下是一些针对 Java 开发的优化建议&#xff1a; 1. 增加 JVM 内存和性能优化 增加堆内存: 通过调整 idea.vmoptions 文件&#xff0c;增加 IntelliJ ID…...

jsp企业财务管理系统设计与实现

企业财务管理系统 摘要 对于企业集来说,财务管理的地位很重要。随着计算机和网络在企业中的广泛应用&#xff0c;企业发展速度在不断加快&#xff0c;在这种市场竞争冲击下企业财务管理系统必须优先发展&#xff0c;这样才能保证在竞争中处于优势地位。对此企业必须实现财务管理…...

EscherNet运行笔记

文章标题&#xff1a;EscherNet: A Generative Model for Scalable View Synthesis 1. 环境配置 conda env create -f environment.yml -n eschernet conda activate eschernet 2. 数据下载 wget https://tri-ml-public.s3.amazonaws.com/datasets/views_release.tar.gz 3…...

Java中的反射机制及其应用场景

目录 什么是Java反射机制&#xff1f; 工作原理 主要应用场景 注意事项 总结 什么是Java反射机制&#xff1f; Java反射机制是一种强大的工具&#xff0c;它允许程序在运行时访问、检查和修改其本身的类和对象的信息。通过反射&#xff0c;开发者可以在不知道类的具体实现…...

信息科技伦理与道德3:智能决策

1 概述 1.1 发展历史 1950s-1980s&#xff1a;人工智能的诞生与早期发展热潮 1950年&#xff1a;图灵发表了一篇划时代的论文&#xff0c;并提出了著名的“图灵测试”&#xff1b;1956年&#xff1a;达特茅斯会议首次提出“人工智能”概念&#xff1b;1956年-20世纪70年代&a…...

青少年编程与数学 02-006 前端开发框架VUE 16课题、组件基础

青少年编程与数学 02-006 前端开发框架VUE 16课题、组件基础 一、定义一个组件二、使用组件三、传递 props四、监听事件五、通过插槽来分配内容六、动态组件七、DOM 内模板解析注意事项1、大小写区分2、闭合标签3、元素位置限制 课题摘要:本文介绍了Vue.js中的组件基础&#xf…...

25/1/11 算法笔记 Yolov8物体识别

这几天做了给Yolov8检测物体的小任务&#xff0c;今天来做下总结。 首先介绍下整个Yolov8检测的步骤吧&#xff0c;安装库那些就不讲了。 这是我的文件包的对象树。 有images包&#xff0c;里面装了训练和验证的图像。 labels包&#xff0c;装了标注好的labels的txt文件&…...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄

文&#xff5c;魏琳华 编&#xff5c;王一粟 一场大会&#xff0c;聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中&#xff0c;汇集了学界、创业公司和大厂等三方的热门选手&#xff0c;关于多模态的集中讨论达到了前所未有的热度。其中&#xff0c;…...

dedecms 织梦自定义表单留言增加ajax验证码功能

增加ajax功能模块&#xff0c;用户不点击提交按钮&#xff0c;只要输入框失去焦点&#xff0c;就会提前提示验证码是否正确。 一&#xff0c;模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...

Spring Boot面试题精选汇总

&#x1f91f;致敬读者 &#x1f7e9;感谢阅读&#x1f7e6;笑口常开&#x1f7ea;生日快乐⬛早点睡觉 &#x1f4d8;博主相关 &#x1f7e7;博主信息&#x1f7e8;博客首页&#x1f7eb;专栏推荐&#x1f7e5;活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...

04-初识css

一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...

基于TurtleBot3在Gazebo地图实现机器人远程控制

1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...

论文阅读笔记——Muffin: Testing Deep Learning Libraries via Neural Architecture Fuzzing

Muffin 论文 现有方法 CRADLE 和 LEMON&#xff0c;依赖模型推理阶段输出进行差分测试&#xff0c;但在训练阶段是不可行的&#xff0c;因为训练阶段直到最后才有固定输出&#xff0c;中间过程是不断变化的。API 库覆盖低&#xff0c;因为各个 API 都是在各种具体场景下使用。…...

TJCTF 2025

还以为是天津的。这个比较容易&#xff0c;虽然绕了点弯&#xff0c;可还是把CP AK了&#xff0c;不过我会的别人也会&#xff0c;还是没啥名次。记录一下吧。 Crypto bacon-bits with open(flag.txt) as f: flag f.read().strip() with open(text.txt) as t: text t.read…...

DeepSeek越强,Kimi越慌?

被DeepSeek吊打的Kimi&#xff0c;还有多少人在用&#xff1f; 去年&#xff0c;月之暗面创始人杨植麟别提有多风光了。90后清华学霸&#xff0c;国产大模型六小虎之一&#xff0c;手握十几亿美金的融资。旗下的AI助手Kimi烧钱如流水&#xff0c;单月光是投流就花费2个亿。 疯…...

二叉树-144.二叉树的前序遍历-力扣(LeetCode)

一、题目解析 对于递归方法的前序遍历十分简单&#xff0c;但对于一位合格的程序猿而言&#xff0c;需要掌握将递归转化为非递归的能力&#xff0c;毕竟递归调用的时候会调用大量的栈帧&#xff0c;存在栈溢出风险。 二、算法原理 递归调用本质是系统建立栈帧&#xff0c;而非…...

【技巧】dify前端源代码修改第一弹-增加tab页

回到目录 【技巧】dify前端源代码修改第一弹-增加tab页 尝试修改dify的前端源代码&#xff0c;在知识库增加一个tab页"HELLO WORLD"&#xff0c;完成后的效果如下 [gif01] 1. 前端代码进入调试模式 参考 【部署】win10的wsl环境下启动dify的web前端服务 启动调试…...