B-树B+树B*树对比总结

前言

  finereportb树在学数据结构的学过,知道是二叉树,查询速度快,一般用在索引上;可是B+树,B*树是什么呢?和B树有什么关系?我们一起一探究竟。

对比

这里写图片描述

  B+树是B-树的变体,B*树又是B+树的变体,是一脉相承发展过来的,不对解决新一阶段的问题。

  B-树即B树解决的是能快速查询到指定数的问题和查询一个数出现的频率的问题。数据存在叶子结点和非叶子结点中。多路搜索的时候走的树高度不高,所以查询用的时间很短。

  B+树适合扫库,解决的是查询某一范围内的数据。它的数据只存在叶子结点,非叶子结点存的是索引,所以显而易见,B+数不适合搜索某一特定的值,因为到叶子结点的路径肯定要比B-树的非叶子结点要短。

  B*树的空间利用率高。相比B+树结点满了就建新结点的做法,B*树是先往兄弟结点中放,都放满了在开辟新的结点,创建新结点少,所以空间利用率高。

小结

  就像事务的隔离级别一样,一个级别的出现都是背负着解决上一个级别解决不了的问题的使命;B树之间也是这样,客观要求不同了,数据结构也与时俱进。在mysql中用的就是B+树的聚集索引。

猜你喜欢

转载自blog.csdn.net/boniesunshine/article/details/80284668