您当前的位置: 首页 >  sql

liaowenxiong

暂无认证

  • 1浏览

    0关注

    1171博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

MySQL的索引存储数据结构BTree和B+Tree的区别

liaowenxiong 发布时间:2021-10-18 17:06:40 ,浏览量:1

文章目录
  • BTree 原理示意图
  • B+Tree 原理示意图
  • B+Tree的树层级很少
  • B+Tree 可以高效支持范围查找

BTree 原理示意图

在这里插入图片描述 注:BTree 就是 B-Tree,实际上官方并没有 B-Tree 的说法。

B+Tree 原理示意图

在这里插入图片描述

B+Tree的树层级很少

BTree 的数据存在每个节点中,所以每个节点能够保存的索引值很少,所以存储大量数据时,树的层级会很高,这样就导致与磁盘的 IO 交互次数增多,查找数据的效率就变得很低。

B+Tree 的数据全部保存在末端的叶子节点中,这样非叶子节点能够保存的索引值就很多,最终导致末端的叶子节点的数量非常庞大,保存2000多万条数据时,B+Tree 只要 3 层,而 BTree 则需要至少 6 层

B+Tree 可以高效支持范围查找

BTree 的叶子节点之间没有双向指针,不能很好地支持范围查找;B+Tree 叶子节点之间有双向指针,从左到右的索引值是从小到大的顺序排序,可以高效支持范围的查找

关注
打赏
1661566967
查看更多评论
立即登录/注册

微信扫码登录

0.0432s