-
二叉树
- 查找时间复杂度O(logN)(有序的时OlogN)
- 两个叶子 中序遍历,1>2<3
- 缺点: 特殊情况下会链化 1→2→3→4 ,复杂度为O(N)
-
平衡二叉树
- 根节点会随着数据的改变而变更
- 数据量越多,遍历次数越多,IO次数就越多,就越慢(磁盘的IO由树高决定)
-
B树
- 数据存储时一个单元既有key 又有data
- 每页存储空间有限,如果data过大,那key就少了,所以数据量大时,树深,磁盘IO增加,速度降低
-
B+树
-
非叶子只存key,叶子结点存data
- ,key从左到右,做小到大。右边结尾的数据会保留下一个左边数据的指针
- 比B树存更多的key,所以树层级小,查询更快,查询速度稳定。
-
数据的叶子结点具有天然排序功能
- 叶子结点之间是有序双向链表,数据紧密,比B树更容易命中缓存
- (非叶子结点之间是单向链表,页内部也是单向链表)
- 全数据遍历更快,需要扫描叶子结点。
-