码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 2022-8-20 B树和B+树


    B树和B+树

          • 数据存储
          • m-way search tree
          • B 树
          • B+ 树

    数据存储

    block address = track number + sector number
    block size (512B)

    硬盘索引数据 ->索引表-> 数据表 -> 硬盘数据位置

    每行数据128bites, 则每个block 存储 4条数据
    使用索引,每行数据用16字节索引指向,每个block 存储 32. 个数据的地址信息。

    数据继续增加,为索引表继续创建索引表,稀疏索引
    每个高级索引16字节,指向32个低级索引所在的block。
    在这里插入图片描述
    多级索引将降低需要访问的block的数量。
    在这里插入图片描述
    self-manage high level indexes 自组织的高级索引。
    自动创建和删除高级索引。

    m-way search tree

    binary search tree:BST:
    二叉树,每个节点有两个子节点,节点只有一个数值,比父节点小的是左下子节点,比父节点大的是右下子节点,每次比较的结果是二选一向下一级寻找。

    3叉树:每个节点有两个数值,有三个子节点,根据数据与父节点中两个数据的比较划分的三个区间,确定向下一级的三个子节点。

    m叉树:每个节点有m-1个数值,可以划分出 m个区间,对应下一级有m个子节点,每次向下一级可以有m个选择,m个数据范围。

    m是节点的数目,m-1 是键的数目,也叫节点的度。

    在这里插入图片描述
    键(节点存储的索引值)同时也指向索引表的某位置,带有指针。

    B 树

    m-way search tree + 规则

    1. 每个节点需要有 m/2个子节点(m/2-1 个键(进位))之后
    2. 根节点需要有至少2个子节点(1个键)
    3. 所有叶子节点在同一级别
    4. 自下而上创建树 from bottom up

    例子:m=4, keys = 10, 20, 40 , 50


    split 拆分节点,向上生长。
    在这里插入图片描述
    继续加入,继续split,中间点向上移动(自定哪个向上)
    在这里插入图片描述

    B+ 树

    不是每个节点都有指针,只有叶子节点leaf nodes 有指针,叶子节点连接形成链表。
    非叶子节点的键会在叶子节点上生成副本,副本后有指针,保证树中所有索引值都有指针指向其地址。

  • 相关阅读:
    LeetCode_54_螺旋矩阵
    ChatGPT DALL-E 3的系统提示词大全
    Ribbon的使用、拓展机制以及源码分析
    杭州市建筑工程师职称评审申报指南
    redis key 命名规范 键名称中的冒号 : 命名空间层次的表示
    一云多芯 | 云轴科技ZStack助力张家口建设信创资源池
    MariaDB 修改用户远程登录
    java面试注意要点
    工业智能网关BL110应用之五十: 数据上传云金鸽Modbus的配置
    美国侦查卫星-KeyHole锁眼卫星0.6m-1.2m
  • 原文地址:https://blog.csdn.net/HITORANGE/article/details/126436504
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号