B樹,B+樹的原理及區別


如圖所示,區別有以下兩點:

  1. B+樹中只有葉子節點會帶有指向記錄的指針(ROWID),而B樹則所有節點都帶有,在內部節點出現的索引項不會再出現在葉子節點中。

  2. B+樹中所有葉子節點都是通過指針連接在一起,而B樹不會。

 

B樹的原理:

  就是為了存儲設備或者磁盤設計的一種平衡查找樹;通過對樹高度的降低可以提升查找效率,尤其是在大量數據進行存儲的時候會存儲到外部磁盤,通過對外部磁盤的讀取時需要快速的查找到對應的位置,所以需要一種高效的外村數據結構。

B樹的優點:

  對於在內部節點的數據,可直接得到,不必根據葉子節點來定位。

 

B+樹的原理:

  B+樹是B樹的一種變形,它把數據都存儲在葉子節點,內部只存關鍵字(其中葉子節點的最小值作為索引)和孩子指針,簡化了內部節點;B+樹的遍歷高效,將所以葉子節點串聯成鏈表即可從頭到尾遍歷,

B+樹的優點:

  1. 非葉子節點不會帶上ROWID,這樣,一個塊中可以容納更多的索引項,一是可以降低樹的高度。二是一個內部節點可以定位更多的葉子節點。

  2. 葉子節點之間通過指針來連接,范圍掃描將十分簡單,而對於B樹來說,則需要在葉子節點和內部節點不停的往返移動。

 

為什么B+樹比B樹更適合做系統的數據庫索引和文件索引
1)B+樹的磁盤讀寫代價更低
因為B+樹內部結點沒有指向關鍵字具體信息的指針,內部結點相對B樹小
2)B+樹的查詢更加穩定
因為非終端結點並不是指向文件內容的結點,僅僅是作為葉子結點的關鍵字索引,因此所有的關鍵字查詢都會走一條從根節點到葉子結點的路徑。即s所有關鍵字查詢的長度是一樣的,查詢效率穩定。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM