B树与B+树

B+Tree对比BTree的优点

  • 磁盘读写代价更低
    一般来说B+Tree比BTree更适合实现外存的索引结构,因为存储引擎的设计专家巧妙的利用了外存(磁盘)的存储结构,即磁盘的最小存储单位是扇区(sector),而操作系统的块(block)通常是整数倍的sector,操作系统以页(page)为单位管理内存,一页(page)通常默认为4K,数据库的页通常设置为操作系统页的整数倍,因此索引结构的节点被设计为一个页的大小,然后利用外存的“预读取”原则,每次读取的时候,把整个节点的数据读取到内存中,然后在内存中查找,已知内存的读取速度是外存读取I/O速度的几百倍,那么提升查找速度的关键就在于尽可能少的磁盘I/O,那么可以知道,每个节点中的key个数越多,那么树的高度越小,需要I/O的次数越少,因此一般来说B+Tree比BTree更快,因为B+Tree的非叶节点中不存储data,就可以存储更多的key。
  • 查询速度更稳定
    由于B+Tree非叶子节点不存储数据(data),因此所有的数据都要查询至叶子节点,而叶子节点的高度都是相同的,B+Tree的高度一般都在2~4层,因此所有数据的查询速度都是一样的。

参考文档

https://blog.csdn.net/u013235478/article/details/50625677


文章作者: Crazy Boy
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Crazy Boy !
赏

留言

想法、疑问或勘误,都可以写在这里。留言会公开显示。

正在准备留言区…

 上一篇
谈谈MySQL中的聚簇索引和非聚簇索引 谈谈MySQL中的聚簇索引和非聚簇索引
理解 InnoDB 索引时,最有用的问题是:叶子节点里有什么,能不能直接提供当前查询要的字段?这比背诵“主键快、普通索引慢”更有助于分析实际查询。 一、普通 B+ 树索引的叶子节点 以下讨论 InnoDB 常见的 B+ 树索引,不把全文索引
2022-03-21
下一篇 
Windows下电脑截图 Windows下电脑截图
1、QQ截图:ctrl+alt+A 2、花式截图:Win+shift+S 可截任意形状 3、微信截图:Alt+A 4、浏览器截图:Ctrl+shift+X 5、WPS截图:Ctrl+Alt+X
2022-03-20