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

面试题------B树和B+树的区别,以及为什么使用B+树而不用B树

面试题------B树和B+树的区别

B树特点:
1.节点排序(节点存储:地址信息+索引+表结构中除了索引外的其他信息)
2.一个节点可以存多个元素,元素也排序

B+树的特点:
1.拥有B树的特点
2.叶子节点之间有指针
3.非叶子节点上的元素在叶子节点上都冗余了,也就是叶子节点中存储了所有的元素,并且排好顺序。
4.(非节点存储:地址信息+索引、叶子节点存储:索引+表结构中除了索引外的其他信息)

在Mysql中一个innodb页就是一个B+树节点,一个innodb页默认16kb,所以一般情况下,一颗两层的B+树,可以存2000万行左右的数据

区别:
B树key和value都在节点上。并且叶子节点之间没有关系。
而B+树的非叶子节点没有存value。叶子节点之间有双向指针,有引用链路。

查找方式不同,因为B树的key和value都存在节点上,因此在查找过程中,可能不用查找的叶子节点就找到了对应的值。
而B+树需要查找到叶子节点,才能获取值

结论:由于B树每个节点都存储了一条记录的所有数据,因此每次IO开销大。以及B+树的叶子节点有指针,可以很好的支持全表扫描、范围查找。

相关文章:

  • 机器学习笔记之高斯过程(三)高斯过程回归——函数空间角度
  • 『Java课设』JavaSwing+MySQL实现学生成绩管理系统
  • Functional Programming in Java venkat(16) Being Lazy part3
  • SpringCloud 组件Gateway服务网关【全局过滤器】
  • 专业硕士招生占比将达到三分之二,那么跟学术硕士有哪些区别?
  • 计算机毕业设计Java毕业生离校管理系统(源码+系统+mysql数据库+lw文档)
  • STM32学习之Keil5软件配置
  • 如何在Linux系统中安装MySQL数据库
  • 实变函数与泛函分析基础
  • 图的初识·存储结构
  • 环境温湿度在线监测如何实现?有何应用场景?
  • Mysql视图和触发器
  • 计算机毕业设计springboot酒店管理系统uah43源码+系统+程序+lw文档+部署
  • UG NX二次开发(C#)-CAM-获取所有的加工刀具表单
  • 2022-11-30 mysql-innodb-ibd文件读取工具
  • LCHub低代码社区:旧的低代码,腾讯怎么讲出新故事
  • 游戏测试是一个怎样的行业?
  • Vector源码分析
  • 23软考备考已开始,网络工程师知识点速记~(1)
  • [附源码]计算机毕业设计springboot酒店物联网平台系统
  • mfc程序移植到其它电脑后,图片资源路径错误的问题
  • Android学习之Matrix
  • MFC 工具箱:此组中没有可用的控件,将某项拖至此文本可将其添加到工具箱
  • 视频开发基础概念
  • MFC控件ID问题:无法引用控件ID error C2065: “IDB_BITMAP4”: 未声明的标识符无法将成员变量添加到ID为IDC_STATIC的控件中
  • Android应用资源
  • MFC自定义控件字体、颜色、背景
  • Android学习之OpenGL ES概述基础
  • MSVC执行动态编译与静态编译
  • Github为什么没有记录你的Contributions