B-树、B+树

首先声明:B-树读作B树

     MySQL底层使用B+树来存储索引数据

 

B-树

  特点:

    1、每个节点都可以存储多个数据;

    2、每个节点的子节点树没有数量限制;

    3、每个节点都存放这索引值和数据;所以搜索可能在非叶子节点结束,最好的情况为o(1);

    4、任何一个关键字只会出现一次;

    5、一般一棵B-树的高度在3层左右,因为3层就可以满足百万级别的数据量;

 

 

B+树:是B-树的一个变种

  

  与B-树的区别:

    1、叶子节点保存了完整的索引和数据,非叶子节点只保存索引值;

    2、叶子节点是一个双向链表结构;这大大增加了区间访问性(局部性原理:如果一个存储器的某一个位置被访问,那么其相邻位置被访问的概率也很大;(磁盘预读原理));

    3、B+树更适合外部存储;因为其非叶子节点只保存了索引值,单个元素所占空间就变小,但每次IO读取量是固定的,所以每次就可以读取出更多的节点,也就可以达到减少IO读取次数的目的;

 

posted @ 2023-03-08 11:13  先娶国王后取经  阅读(44)  评论(0编辑  收藏  举报