b+樹是基於b-樹的一種變體,有著比b-樹更高的查詢效能。
除了具備b-樹的特性外,b+樹也具備一些新的特性:
乙個m階的b+樹具有如下幾個特徵:
1.有k個子樹的中間節點包含有k個元素(b樹中是k-1個元素),每個元素不儲存資料,只用來索引,所有資料都儲存在葉子節點。
2.所有的葉子結點中包含了全部元素的資訊,及指向含這些元素記錄的指標,且葉子結點本身依關鍵字的大小自小而大順序鏈結。
3.所有的中間節點元素都同時存在於子節點,在子節點元素中是最大(或最小)元素。
一棵典型的3階b+樹
b+樹相比於b樹的優點
1.查詢的io次數更少
是由於b+樹中間節點的元素不儲存資料,只用來索引(所有資料都儲存在葉子節點中),因此,單一節點儲存更多的元素,這樣b+樹就可以比b樹變得更矮胖,查詢的io次數更少。
2.查詢效能穩定
b+的所有查詢都要查詢到葉子節點,而b樹在根節點、中間節點或者葉子節點都有可能查詢到。因此b+樹比b樹的查詢更穩定。
3.便於範圍查詢
對於範圍查詢,由於b+樹的所有葉子節點形成有序鍊錶,因此只需要找到範圍查詢的最小元素,之後按照葉子節點的指向,直到找到最大元素,即可查詢到該範圍內所有的資料。
大部分關係型資料庫,比如mysql,則使用b+樹作為索引。
二叉樹,B樹,B 樹
先來看看二叉樹 二叉樹是大家熟知的一種樹,用它來做索引行不行,可以是可以,但有幾個問題 1.如果索引資料很多,樹的層次會很高 只有左右兩個子節點 資料量大時查詢還是會慢 2.二叉樹每個節點只儲存乙個記錄,一次查詢在樹上找的時候花費磁碟io次數較多 所以它並不適合直接拿來做索引儲存,演算法設計人員在二...
二叉搜尋樹 平衡二叉樹 B樹 B 樹 B 樹
二叉查詢樹,由於不平衡,如果連續插入的資料是有順序的 會導致如下圖b的所示,此時搜尋會退化到o n 二叉查詢樹,也稱二叉搜尋樹,或二叉排序樹。其定義也比較簡單,要麼是一顆空樹,要麼就是具有如下性質的二叉樹 1 若任意節點的左子樹不空,則左子樹上所有結點的值均小於它的根結點的值 2 若任意節點的右子樹...
二叉樹 B樹以及B 樹
資料庫索引結構一般引用b樹或者索引。利用樹結構的原因?樹結構查詢效率更高 節點按照順序排列 二叉樹結構 b樹結構 乙個m階的b樹具有如下幾個特徵 1.根結點至少有兩個子女。2.每個中間節點都包含k 1個元素和k個孩子,其中 m 2 k m 3.每乙個葉子節點都包含k 1個元素,其中 m 2 k m ...