二叉树,存在平衡问题
红黑树也没用,mysql底层没用到, 层级太多,数据量太大有问题
B+树,折半查找算法:特点有:
1.非叶子节点不存储数据,只存储索引,减少io
2.叶子节点包含所有索引字段
3,叶子节点指针相连,提高访问性能
b树和b+树的区别,b树叶子节点没有相互指针,没法范围查询
b+树把数据都放叶子节点,减少树的高度,减少io
详解b+树
如上图,是一颗b+树,关于b+树的定义可以参见B+树,这里只说一些重点,浅蓝色的块我们称之为一个磁盘块,可以看到每个磁盘块包含几个数据项(深蓝色所示)和指针(黄色所示),如磁盘块1包含数据项17和35,包含指针P1、P2、P3,P1表示小于17的磁盘块,P2表示在17和35之间的磁盘块,P3表示大于35的磁盘块。真实的数据存在于叶子节点即3、5、9、10、13、15、28、29、36、60、75、79、90、99。非叶子节点只不存储真实的数据,只存储指引搜索方向的数据项,如17、35并不真实存在于数据表中。
这一类前面相同的数据。用普通索引,效率很低。1可以反转