红黑树,B树学习笔记

红黑树是一棵特殊的二叉查找树。为了让树尽可能矮,平衡,减少查找比较次数,所以出现了红黑树

   

插入红6,父亲,叔叔,爷爷反色。此时造成以5为根的节点不平衡。

以5为根的节点开始左旋,左旋结束后,12和5 同色,且以19为根的树左右不平衡,这时开始右旋,同时,12和19反色。

 

为什么hash不能用做mysql索引:

B树:

B树的构建过程

插入8的时候产生分裂。分裂的节点为分裂后的中间节点。5阶的树,每个节点簇只能放四个数据

插入13的时候,从13开始分裂,此时13上移,和7在同一层,如果第一层也满了,就同上图。

Mysql如果用B树存索引,如下,每个节点,不止存userid,还存了一个指向具体数据的地址,造成空间浪费。

B+树存索引:通过双向链表,可以直接找到小于或者大于某个数的所有数据,分支节点不存数据省空间,因为一般来说,索引本身也很大,不可能全部存储在内存中,因此索引往往以索引文件的形式存储在磁盘上,这样,索引查找过程中就要产生磁盘IO消耗。因此,选择数据结构时,索引的结构组织要尽量减少查找过程中磁盘IO的存取次数。

B+树的阶与计算机一个页的大小有关。联合索引有最左匹配原则,即只找最左边的查询条件,最后到叶子节点里去找。

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章