B樹,B+樹比較


首先注意:B樹就是B-樹,"-"是個連字符號,不是減號。也就是B-樹其實就是B樹

B-樹是一種平衡的多路查找(又稱排序)樹,在文件系統中有所應用。主要用作文件的索引。其中的B就表示平衡(Balance) 

 

B+樹是對B樹的一種升級, B樹每個節點都存儲data, 而B+樹只在葉子節點存儲data,B+降低了樹的深度,將“瘦高”的樹變得“矮胖:

實現方法: 

(1)、每個節點存儲多個元素 
(2)、摒棄二叉樹結構,采用多叉樹

 

B樹:

 

B+樹:

 

 

B+樹有更高的查找效率 

1. B+樹中間節點沒有衛星數據,只有索引,而B樹每個結點中的每個關鍵字都有衛星數據;這就意味着同樣的大小的磁盤頁可以容納更多節點元素,在相同的數據量下,B+樹更加“矮胖”,IO操作更少 

2、其次,因為衛星數據的不同,導致查詢過程也不同;B樹的查找只需找到匹配元素即可,最好情況下查找到根節點,最壞情況下查找到葉子結點,所說性能很不穩定,而B+樹每次必須查找到葉子結點,性能穩定
3、在范圍查詢方面,B+樹的優勢更加明顯
  B樹的范圍查找需要不斷依賴中序遍歷。首先二分查找到范圍下限,在不斷通過中序遍歷,知道查找到范圍的上限即可。整個過程比較耗時。
  而B+樹的范圍查找則簡單了許多。首先通過二分查找,找到范圍下限,然后同過葉子結點的鏈表順序遍歷,直至找到上限即可,整個過程簡單許多,效率也比較高。

 

小結:

B+樹相比B樹的優勢: 
  1.單一節點存儲更多的元素,使得查詢的IO次數更少; 
  2.所有查詢都要查找到葉子節點,查詢性能穩定; 
  3.所有葉子節點形成有序鏈表,便於范圍查詢。


免責聲明!

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



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