一、B樹
B樹是一種多叉平衡查找樹,由於是多叉結構,對於元素數量非常多的情況下,樹的深度不會像二叉結構那么大,可以保證查詢效率。
二、B+樹
B+是是B樹的一種變形,
1、特點:
(1)、所有葉子結點包含全部關鍵字信息,及指向含有這些關鍵字記錄的指針,且葉子節點中關鍵字進行有序鏈接。
(2)、非葉子結點相當於是葉子節點的索引(稀疏索引),葉子結點相當於是存儲(關鍵字)數據的數據層。
2、B+樹比B樹更適合操作系統的文件索引和數據庫索引:
(1)B+樹的磁盤讀寫代價更低,B+樹的內部結點沒有指向關鍵字具體信息的指針,因此內部結點相對B樹更小。如果把所有同一內部結點的關鍵字放在同一塊磁盤中,盤塊所能容納的關鍵字數量也就越多,一次性讀入內存中的需要查找的關鍵字也就越多,相對IO讀寫次數降低。
(2)B+樹的查詢效率更加穩定,由於非葉子結點並不是最終指向文件內容的結點,而只是葉子結點中關鍵字的索引。所以任何關鍵字的查找必須走一條從根結點到葉子結點的路。所有關鍵字查詢的路徑長度相同,導致每個數據的查詢效率相當。
此外B+樹只要遍歷葉子結點就可以實現整棵樹的遍歷,支持基於范圍的查詢。
三、B*樹
B*是是B+樹的變體,在B+樹的非根和非葉子結點在增加指向兄弟的指針;
1、特點:
當一個結點滿時,如果它的下一個兄弟結點未滿,那么將一部分數據移到兄弟結點中,將結點的最低利用率從1/2提高到2/3。