1.什么是B+Tree?
介绍B+Tree前我们先聊一下在数据结构课程当中学习到的其他树结构,二叉搜索树,平衡二叉树搜索树(红黑树、AVL树),不懂的同学可以先去了解一下。我们知道平衡二查搜索树是对二叉搜索树的一次改进,防止退化成线性表和树高度过高的情况,使其搜索单个值的复杂度为O(logN),这也就意味着在数据必须是可排序的,同时这也是Java的TreeMap(使用的是红黑树结构)不能存null值的原因(null无法比较)。但是为什么又出现了B+树呢,红黑树的高度虽然有一定的控制,而数据库当中一般要把索引树的高度控制在3-5层,这点红黑树显然无法做到,B+树是B-树(不要读成B减树,而是B树)的加强版,是一种多路平衡搜索树,既然它是多路平衡的,那么就不在像红黑树那样只有2个子节点了,既然有多个子节点,树的高度就可以控制了,同时它也跟红黑树一样,数据是排序的,可以快速查找。B+树定义 维基百科
给大家介绍一个可以在线、可视化的学习各种树的网站。