美文网首页
B-与B+的区别

B-与B+的区别

作者: 何何与呵呵呵 | 来源:发表于2018-01-18 20:56 被阅读0次

优点一:B-树降低查询高度,减少磁盘IO读写次数,虽然增加了内存运算,但只要不溢出内存,速率更快.如图一所示,相比于一般的树,B-树高度只有三,查找到节点3/5只要在磁盘上查找三次,但由于节点3/5存储了两个数据,所以增加了内存的运算.


图一

优点二:便是B-树的自平衡.如图二所示,B-树能够自动将各节点数据平衡(图一插入节点4自平衡成图二),这样可以尽可能的放入多的数据仍能保持高度不变(这里还是3),平衡原理大家可以去看一下其他人的文章(个人感觉实现原理较复杂).


图二
B-树主要用于文件系统以及部分数据库索引,比如MongoDB.而Mysql使用B+树作为索引.B+树是B-树的一种变体,有着更高的查询性能.图三所示,B+树每一个父节点的元素都出现在子节点中,是子节点的最大或最小.
图三

子节点包含父节点的所有信息,形成一个有序链表.这样查询速度就会很快了.


图四
B-与B+的卫星数据区别.图五为B-树,不管子节点还是父节点,其数据都是卫星数据(索引元素的数据记录).B+树的叶子节点直接包含微信数据,所以父节点与中间节点都作为索引,指向要查找的卫星数据.这样设计还带来一个好处,B+树的中间节点没有卫星数据,所以同样大小的磁盘页可以容纳更多的节点元素.
图五
图六
B+树对比B-树的优点总结:①.IO次数更少(相同高度可以存储更多);②.查询性能稳定(受高度和内存的影响少);③.范围查询简便(B+树的结构特点).

相关文章

  • B-与B+的区别

    优点一:B-树降低查询高度,减少磁盘IO读写次数,虽然增加了内存运算,但只要不溢出内存,速率更快.如图一所示,相比...

  • Mysql InnoDB B+树索引和哈希索引的区别?Mongo

    Mysql InnoDB B+树索引和哈希索引的区别?MongoDB 为什么使用B-树?

  • B树、B+树、B*树

    B-树 B+树 B*树

  • 聊一聊B+树

    标签: 图解B+树 | B+树代码|mysql 聚集索引|mysql B+树索引| 前言   虽然B+是B-演化过...

  • 为什么Mysql用B+树做索引而不用B树

    先从数据结构的角度来答。应该知道B-树和B+树最重要的一个区别就是B+树只有叶节点存放数据,其余节点用来索引,而B...

  • B-树 B+树 区别

    二叉搜索树:二叉树,每个结点只存储一个关键字,等于则命中,小于走左结点,大于走右结点;B(B-)树:多路搜索树,每...

  • B-树/B+树

    B-树(Balance树)和B+树应用与数据库索引,是m叉的多路平衡查找树。 1. 性质分析 1.1 M阶B-树 ...

  • 树-二叉搜索树-平衡二叉树-红黑树-B树B+树

    关于树的总结从二叉树->二叉搜索树->平衡二叉树->红黑树->B树与B+树 B+树介绍 B树、B-树、B+树、B*...

  • 如何手写b-树,b+树建立过程?

    要想手写b-树和b+树的建立过程,就得清楚b-树和b+树性质性质不清楚的人请看文章最后,我们现在先开始建树吧。 b...

  • 数据结构之BBST

    目录: 1.B-树与B+树2.红黑树 文章参考: 关于B-tree的科普文,很有趣什么是B-树? 关于B+树的科普...

网友评论

      本文标题:B-与B+的区别

      本文链接:https://www.haomeiwen.com/subject/vhfgoxtx.html