zoukankan      html  css  js  c++  java
  • 数据库中的B树和B+树

    B树与B+树

    数据库中建立索引能加快数据的存取,但是当索引变得很大时,可能导致内存装不下。这时就需要使用多级索引来实现。而B树和B+树是实现多级索引的一种数据结构。

    11

    B树

    B树是多叉树,其树中每个节点如下所示:

    11

    Ki是索引字段值,Pj只指针,指向索引块或者指向主文件中的数据块或者指向数据块中的某个记录
    Pi指向的内容中的关键字都要小于Ki,Pi+1指向的内容中的关键字都大于等于Ki

    特性:

    • 树中每个节点至多有m棵子树(m为树的阶)
    • 若根节点不是终端节点,至少有两棵子树
    • 除根节点外所有的非叶节点至少有m/2(取上限)棵子树

    11

    B+树

    特性:

    • 树中每个节点至多有m棵子树(m为树的阶)
    • 若根节点不是终端节点,至少有两棵子树
    • 除根节点外所有的非叶节点至少有m/2(取上限)棵子树
    • 节点中关键字的个数与子树个数相等
    • 所有的叶节点包含全部关键字以及指向记录的指针(简单理解是叶子节点包含了主文件的全部索引,我们可以直接通过叶子节点来查找主文件的记录),叶子节点中的关键字是从大到小进行排序的,叶子和叶子之间是相互连接的。

    11

    B树和B+树区别

    B树中节点有m个关键字,则有m+1棵子树,而B+树中节点有m个关键字,则有m个子树(每个关键字对应一棵子树,子树中的关键字小于等于父节点中那个关键字的)
    B+树中叶节点包含了所有的信息,而非叶节点只是在索引上建立索引,所以B+树中非叶节点不指向记录且索引字段值可以重复出现。B树中每个节点可以是具体的记录或者是一个索引块,且要求树中的每个索引字段值只能出现一次。

  • 相关阅读:
    [USACO09Open] Tower of Hay 干草塔
    [HNOI2004]打鼹鼠
    BZOJ1222[HNOI 2001]产品加工
    BZOJ1270[BJWC2008]雷涛的小猫
    NOIP2018出征策
    解析·NOIP·冷门 CLZ最小环
    CCF-NOIP-2018 提高组(复赛) 模拟试题(九)(2018 CSYZ长沙一中)
    [脚本无敌1]图片批量处理(matlab)
    用Matlab解《2013年数据建模比赛》图像碎片拼接题
    火灾检测-fire,fire
  • 原文地址:https://www.cnblogs.com/xidongyu/p/6538590.html
Copyright © 2011-2022 走看看