https://www.bilibili.com/video/BV1Aa4y1j7a4?from=search&seid=10750110853212942342
    不仅讲了b树也简要讲了b+树
    https://www.bilibili.com/video/BV12K4y1m71b?p=2
    只讲了b树
    链接1

    222.png
    对上面图的个人理解:
    b树中的每个节点保存数据表中的一行数据,
    其中键值对应的是主键,
    data对应的是非主键信息,
    指针即下一个子节点的地址,
    每个节点中的p1,p2,p3都是不一样的,图中只是方便展示都标记为p1,p2,p3而已
    叶子节点由于没有子节点,所以只有key和data,而没有指针信息;

    上图来源,这篇文章可以封神了!
    要想学的很好得把操作系统的内存管理学学

    链接2
    链接3

    1. b树的阶数是人为指定的,不能靠看节点的关键字数目来判定
    2. b树的节点包含两个部分,一个是关键字数目和关键字数组,另一个是指向子树的指针数组
    3. b树是从相邻关键字之间进行向下扩展,而b+树是从各个关键字直接向下扩展
    4. b树的每个节点都能对应一条磁盘中的记录,b+树只有叶子节点才可以,因为b+树中的叶子节点的关键字必然包含其父节点的关键字,即所有可用的关键字都在最后一层的叶子节点
    5. b树的根节点的关键字最少为1个,而b+树的根节点的关键字最少为2个,因为两者的根节点都是至少要有两个子树
    6. 一个5阶的b树,实际上每个节点都应该分配一个长度为4的数组用来存放4个关键字(这里未考虑存放指针)
    7. b+树的叶子节点保存索引,指向磁盘中的数据

    image.png
    image.png
    image.png