mysql底层为什么要用B+树,与B树相比有什么优势?

文章探讨了二叉树在插入和检索效率上的问题,以及为解决这些问题逐步引入的优化数据结构,包括红黑树作为自平衡二叉树的尝试,然后是B树通过减少层数提高检索速度,最后是B+树的改进,它不仅减少层数,还通过链表连接叶子节点提升检索效率并解决页切换问题。
摘要由CSDN通过智能技术生成

先从二叉树开始:

二叉树:

插入时最理想的是构成一个二叉树搜索:

  1. 对于根节点,左子树中所有节点的值 <根节点的值<右子树中所有节点的值;
  2. 任意节点的左、右子树也是二叉搜索树;

二叉搜索树

缺点:

  1. 顺序插入时会形成单链表
    单链表
  2. 插入数据越多,层数越多,检索效率降低

第一步优化:红黑树

特点:自平衡二叉树(解决顺序插入时形成的单链表)
红黑树
缺点:二叉树的大数据时层级深,检索慢还未解决

第二步优化:B树


优点:

  • 每个节点都可以放数据
  • 层数变少,检索效率有所提高

缺点:

  • 如果访问下一页需要回到父节点再到兄弟节点

第三步优化:B+树

mysql进一步优化的B+树
优点:

  • 非叶子节点不保存具体的数据,而只保存关键字的索引,即有更多的内存来存放索引,使得单层能存放的索引大幅度增加,因此层数大幅度减少,检索效率大幅度提高
  • 叶子节点用链表串联起来,所有的数据都会出现在叶子节点,解决B树检索下一页的问题
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值