B 樹也稱 B- 樹,全稱為 多路平衡查找樹,B+ 樹是 B 樹的一種變體。B 樹和 B+ 樹中的 B 是 Balanced
(平衡)的意思。
目前大部分數據庫系統及文件系統都采用 B-Tree 或其變種 B+Tree 作為索引結構。
B 樹& B+ 樹兩者有何異同呢?
- B 樹的所有節點既存放鍵(key)也存放數據(data),
B+ 樹只有葉子節點存放 key 和 data,其他內節點只存放 key。 - B 樹的葉子節點都是獨立的;
B+ 樹的葉子節點有一條引用鏈指向與它相鄰的葉子節點。 - B 樹的檢索的過程相當于對范圍內的每個節點的關鍵字做二分查找,可能還沒有到達葉子節點,檢索就結束了。
B+ 樹的檢索效率就很穩定了,任何查找都是從根節點到葉子節點的過程,葉子節點的順序檢索很明顯。 - 在 B 樹中進行范圍查詢時,首先找到要查找的下限,然后對 B 樹進行中序遍歷,直到找到查找的上限;
B+ 樹的范圍查詢,只需要對鏈表進行遍歷即可。
綜上,B+ 樹與 B 樹相比,具備更少的 IO 次數、更穩定的查詢效率和更適于范圍查詢這些優勢