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

Mysql底层数据结构为什么选择B+树

索引底层采用什么数据结构,为什么使用B+树而不是其他数据结构:

(1)如果采用二叉树:使用递增字段作为索引时,二叉树会退化成链表,查找效率太低

(2)如果采用红黑树,虽然插入新元素的过程中会自我平衡,调整位置,但是红叉树终究还是二叉树,树的高度还是太高了,I/O操作太多,多路树B树和B+树具有更低的层高。

(3)如果采用哈希表:单次查询虽然哈希表确实快,但是范围查询,比如:select * from table1 where id

(4)

1.B树的非叶子节点和叶子节点之间没有重复,B+树的非叶子节点和叶子节点之间有重复,也就是B+树有冗余节点

2.B树的非叶子节点和叶子节点都既存储索引key,又存储数据data,B+树的非叶子节点只存储索引,不存储数据,叶子节点才是既存储索引,又存储数据

3.B树的叶子节点不会存储相邻节点在磁盘中的位置,B+树的叶子节点会存储相邻节点在磁盘中的位置,所以B+树支持范围查询

4.B树不用查到叶子节点就可能查到数据,B+树必须一路查到叶子节点才能查到数据

http://www.lryc.cn/news/155123.html

相关文章:

  • R语言列操作函数
  • 【Unity】VS Code 没有自动补全 MonoBehaviour 的方法
  • 计算机竞赛 基于深度学习的人脸性别年龄识别 - 图像识别 opencv
  • 大厂面试 | 百度一面,顶不住
  • c++线程
  • 【Docker】02-安装mysql
  • JAVA每日小知识(关于excel下载时插入和stream流遍历优化)
  • 阿里后端开发:抽象建模经典案例
  • 【车载以太网测试从入门到精通】——DoIP BootLoader刷写测试(含CAPL源码)
  • RK开发板的USB连接(Ubuntu)
  • Redis-Cluster集群的部署(详细步骤)
  • Vulnhub: Hogwarts: Bellatrix靶机
  • 机器学习(吴恩达第一课)
  • 固定资产管理怎么改革
  • 【js】防抖和节流的使用场景和区别:
  • Blazor前后端框架Known-V1.2.14
  • 港陆证券:五日线破位怎么看?
  • 睿趣科技:抖音小店多久可以做起来
  • onnx 模型切割掉conv后面的节点,设置输出层名称和最后节点名称一致,设置输出层shape和输出节点一致.
  • 泛型的学习
  • L1-061 新胖子公式(Python实现) 测试点全过
  • 潜艇来袭(Qt官方案例-2维动画游戏)
  • 50ETF期权开户平台(0门槛期权开户指南)
  • leaflet · 关于轨迹移动
  • 学生宿舍水电费自动缴费系统/基于javaweb的水电缴费系统
  • 机器人中的数值优化(十三)——QP二次规划
  • 语言深入理解指针(非常详细)(三)
  • 实训笔记8.31
  • el-table 垂直表头
  • B081-Lucene+ElasticSearch