B樹和B+樹對比,為什么MySQL數據庫索引選擇使用B+樹?


一 基礎知識

二叉樹

根節點,第一層的節點

葉子節點,沒有子節點的節點。

非葉子節點,有子節點的節點,根節點也是非葉子節點。

 

B樹

B樹的節點為關鍵字和相應的數據(索引等)

 

B+樹

B+樹是B樹的一個變形,非葉子節點只保存索引,不保存實際的數據,數據都保存在葉子節點中,

B+樹的葉子節點為鏈表,鏈表放數據,非葉子節點是索引。

 

二 對比

1.B樹和B+樹同樣適用於高度越低,查詢越快。

2.B樹查找節點,B+樹只需要查詢所有節點(索引),B樹查詢索引和數據。雖然可能第一個就找到,但在極端情況下,需要全查詢索引和數據,不如B+樹穩定。

3.B+樹和B樹比,B+樹的硬盤空間更少,io的讀寫代價更低。因為B+樹節點只有索引,占位更少。在查詢的情況下硬盤指針移動更低。


免責聲明!

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



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