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

B树和B+树的区别

B树的特点:
(1)节点排序
(2)一个节点可以存放多个元素,并且这多个元素也是排序好的

B+树的特点
(1)拥有B树的特点
(2)叶子节点之间有指针
(3)非叶子节点上的元素在叶子节点上都冗余了,也就是叶子节点中存储了所有的元素,并且排好顺序。

为什么MySQL使用B+树

Mysql索引使用的是B+树,因为索引是用来加快查询速度的,而B+树通过对数据进行排序所示是可以提高查询速度的,然后B+树的一个节点可以存放多个元素,从而可以使得B+树的高度不会太高。

磁盘跟内存进行交互的时候,是以页为单位的,在进行数据读取的时候,一般都是读取的页的整数倍,innodb存储引擎默认读取的都是16kb的数据。而B树有这样的特点,在进行数据的检索时,数据和key是放在一起的,意味着在每一次读取数据时,每一个块,也就是每一个16kb的数据中,会存存着索引数据+实际数据,而实际数据多了只会占用大量的内存空间,造成树的分支范围变小,导致想要插入更多的数据时,深度又会增加。基于此考虑,将B树中的非叶子结点的数据放到叶子节点中,也就是非叶子节点只保存key的值,叶子节点中存储实际的数据。


http://www.kler.cn/a/37976.html

相关文章:

  • h5真机调试之ios和Android和vconsole
  • 创建可交互的图表:AntV X6实现预留空白位置、拖拽吸附与信息修改弹框
  • 如何用https协议支持小程序
  • 2023.7.16-约数的枚举
  • webpack插件安装
  • 【深度学习】:用于 GAN 的生成器架构 - 生成人脸
  • via24种人格力量,积极心理学之创造力的力量
  • 云计算UPS监控,怎么办?
  • Clion开发STM32之W5500系列(四)
  • MySQL 第七天作业 nosql作业
  • 互联网行业真的不行了吗?
  • flutter开发实战-Running Gradle task ‘assembleDebug‘ 的解决方法
  • WebSocket使用-长连接
  • 【Ajax】笔记-Ajax案例准备与请求基本操作
  • MIT 6.829 -- L0 Background: Single-Link Communication
  • 【数学建模】 灰色预测模型
  • Prometheus实现钉钉报警
  • 通过 Postman+Newman+Jenkins 进行接口自动化测试和进一步实现 CI
  • PyLab绘制曲线图
  • 王道考研数据结构第六章知识点总结