LL,LR,RR,RL.
左右旋,LL的根节点是从不平衡的那一层的开始的,LR调整时,整个都调整,分支旋转时,全调整
数据量非常大时,大部分数据存放在磁盘上,内存访问时间约为50ns,减少磁盘IO次数
传统平衡二叉树:AVL树,红黑树
迎合磁盘角度:有效减少磁盘IO次数,因此也是MySQL使用B,B+的原因
- B+树为叶子节点增加了一个链指针全都连接起来,可以很快的检索比如(1~100)范围内。关键字储存在叶子结点出现,储存data,非叶子结点不储存真正的data
- B+树叶子节点在磁盘里是顺序存储,当读到某个值时,磁盘预读提前把这些数据读进内存,使得范围查询和排序很快,不像B树,每次所引从根节点开始
局部性原理:因为从磁盘读取数据时,是通过转圈实现的,当想要的数据在一块时,读数据的速度也就越快,把向后读取一定长度的数据放入内存中 - B+树更适合外部存储,B+树在一次IO里面,能读出的索引值更多,从而减少查询时候需要的IO次数(读的信息量大,读的次数就少)
即一次磁盘带走的数据,B+树会比B树更高效 - B+树的查询时间是固定的,B树(B-树)查询时间最快是O(1)