B树和B+树的理解
了解二叉树、AVL树、B树的概念
B树和B+树的应用场景
为什么用B树或者B+树来做索引结构
B树是一种多路平衡查找树,
二叉树:每个节点最多支持两个分叉树,相比单向链表来向多了一个分支
二叉查找树:在二叉树基础上添加了一个规则,它的规则是左子树的所有子节点,都要小于它的根节点,右子树的所有子节点,都要大于它的子节点
二叉查找树,有可能会出现斜树的可能,导致时间复杂度增加,因些又引入了一种叫平衡二叉树的一个机制,它具有二叉查找树的所有特点,同时增加了一个规则,它的规则是它的左右两个子树的高度差的绝对值,不能超过1,平衡二叉树为了达到这样一个平衡,所以它会引入一个叫左旋和右旋的机制,去实现树的平衡
而B树呢,它是一种多路平衡查找树,它满足平衡二叉树的规则,同时它也可以有多个子树,子树的数量取决于它的关键字的数量+1
b+树只是在B树基础上做了增强,最大区别有两个点:B树数据存储在每个节点上,而B+树中的数据是存储在叶子节点上,并且通过链表的方式,把叶子节点的所有数据进行一个连接
第二个B+树的子路数量,是等于它的关键字的数量,从B树存储数据可以看到每个节点都会存储数据,B+树的所有数据都是存储在叶子节点上,并且叶子结点的数据是用双向链表来关联,这个是属于InnoDB里的一个特征.
第二:B树和B+树,一般应用在文件系统和数据库系统中,用来去减少磁盘IO所带来的性能损耗的一个机制的,以Mysql中的InnoDB为例,当我们去通过"select"语句去查询一条数据的时候,InnoDB需要从磁盘上去读取数据,而这个过程会涉及到磁盘IO以及磁盘的随机IO
AVL树它的高度要比B树和B+树要高