二叉树-平衡二叉树-红黑树-B-树-B+树-B*树

一、二叉树

解决问题:查询排序
二叉树-平衡二叉树-红黑树-B-树-B+树-B*树

二、平衡二叉树(AVL)

解决问题:深度太深,会导致查询效率很低,因为查询复杂度为O(n),n为深度。因此要降低深度,保持平衡
二叉树-平衡二叉树-红黑树-B-树-B+树-B*树

三、红黑树

解决问题:通过红黑规则,对平衡进行一种妥协,可以认为是一个弱平衡,降低旋转次数,提高效率。
好处:插入最多两次旋转,删除最多三次旋转,
场景:搜索,插入,删除操作较多的情况下,我们就用红黑树。
二叉树-平衡二叉树-红黑树-B-树-B+树-B*树

四、B-树

一个节点不再是一个,可以是M个节点。主要是适用在磁盘文件存储。

外部查找是指在辅助设备空间进行数据查找。如在计算机中内存的大小是有限的, 如果要查找的数据量太大,无法全部加载到内存中,必须借助辅助存储设备的空间再进行查找。
二叉树-平衡二叉树-红黑树-B-树-B+树-B*树

五、B+树

解决问题:数据库的索引,主要是对B-树进一步优化;
1、节点不存储数据,叶子节点才存储行数据
2、叶子节点有所有索引key值
3、叶子节点之间有指针连接

优点:
1、不存储行数据,所以没一页拉取更多的索引,减少IO
2、叶子节点有行数据,并且叶子节点可以顺序访问。查询快

二叉树-平衡二叉树-红黑树-B-树-B+树-B*树

六、B*树

解决的问题:
减少节点,如果兄弟节点没有满,则往兄弟节点靠,是B+树的变种
二叉树-平衡二叉树-红黑树-B-树-B+树-B*树