zoukankan      html  css  js  c++  java
  • B树与B+树

    一、B树(B-树)

    特点:

    (1)多路,非二叉树

    (2)每个节点既保存索引,又保存数据

    (3)搜索时相当于二分查找

    二、B+树

    特点:

    (1)多路非二叉

    (2)只有叶子节点保存数据

    (3)搜索时相当于二分查找

    (4)增加了相邻接点的指向指针。

    三、B树与B+树的区别

    1,关键字的数量不同;B+树中分支结点有m个关键字,其叶子结点也有m个,其关键字只是起到了一个索引的作用,但是B树虽然也有m个子结点,但是其只拥有m-1个关键字。

    2,存储的位置不同;B+树中的数据都存储在叶子结点上,也就是其所有叶子结点的数据组合起来就是完整的数据,但是B树的数据存储在每一个结点中,并不仅仅存储在叶子结点上。

    3,分支结点的构造不同;B+树的分支结点仅仅存储着关键字信息和儿子的指针(这里的指针指的是磁盘块的偏移量),也就是说内部结点仅仅包含着索引信息。

    4,查询不同;B树在找到具体的数值以后,则结束,而B+树则需要通过索引找到叶子结点中的数据才结束,也就是说B+树的搜索过程中走了一条从根结点到叶子结点的路径。

    四、应用

      MongoDB使用B树,所有节点都有Data域,只要找到指定索引就可以进行访问,无疑单次查询平均快于Mysql。

      Mysql作为一个关系型数据库,数据的关联性是非常强的,区间访问是常见的一种情况,B+树由于数据全部存储在叶子节点,并且通过指针串在一起,这样就很容易的进行区间遍历甚至全部遍历。

  • 相关阅读:
    我从Linux走来,选择了Windows
    静态路由(三路由)
    设置跨交换机VLAN
    服务器只能被动接受
    理解 atime,ctime,mtime (下)
    理解 atime,ctime,mtime (上)
    visualvm连接服务器jvm进行监控
    mysql 日期函数格式
    关于springmvc跨域
    Javassist初体验
  • 原文地址:https://www.cnblogs.com/guanghe/p/13639995.html
Copyright © 2011-2022 走看看