二叉树:极端情况退化为链表,搜索复杂度退化为O(n)
平衡二叉树:要大量的操作来维持树的平衡
红黑树:每个节点只存储两个节点,而IO一次会读取至少一页的数据(16K数据),而每个节点只存储一个数据,浪费IO操作,存储的节点少,树层数高,IO次数也多
B树:每一层可以有多个节点,非叶子节点也存储数据,且叶子节点之间不互联
B+树:非叶子节点不存储数据,且叶子节点之前双向链表互联
B+树相比B树优势
1. 非叶子节点不存储数据,不需要在遍历树节点时进行IO操作,降低IO次数,IO友好
2. 都是在叶子节点获取数据,查询效率更稳定
3. 叶子节点之间互联,便于扫库和范围查询