b+樹是b樹的乙個公升級版,相對於b樹來說b+樹更充分的利用了節點的空間,讓查詢速度更加穩定,其速度完全接近於二分法查詢。為什麼說b+樹查詢的效率要比b樹更高、更穩定;我們先看看兩者的區別
規則:1.b+跟b樹不同,b+樹的非葉子節點不儲存關鍵字記錄的指標,只進行資料索引,這樣使得b+樹每個非葉子節點所能儲存的關鍵字大大增加;
2.b+樹葉子節點儲存了父節點的所有關鍵字記錄的指標,資料按遞增的順序排列;所有資料位址必須要到葉子節點才能獲取到。所以每次資料查詢的次數都一樣;
3.b+樹葉子節點的關鍵字從小到大有序排列,左邊結尾資料都會儲存右邊節點開始資料的指標(每個葉子節點的尾結點都會和右邊葉子節點的頭相連)。
第二種方式如圖:
特點3、b+樹天然具備排序功能:b+樹所有的葉子節點資料構成了乙個有序鍊錶,在查詢大小區間的資料時候更方便,資料緊密性很高,快取的命中率也會比b樹高。
4、b+樹全節點遍歷更快:b+樹遍歷整棵樹只需要遍歷所有的葉子節點即可,,而不需要像b樹一樣需要對每一層進行遍歷,這有利於資料庫做全表掃瞄。
b樹相對於b+樹的優點是,如果經常訪問的資料離根節點很近,而b樹的非葉子節點本身存有關鍵字其資料的位址,所以這種資料檢索的時候會要比b+樹快。
參考文章:
B樹(B樹 ,B 樹 ,B 樹)與多叉樹
我們先來看看二叉樹存在的問題 二叉樹的操作 效率較高,但是也存在問題,請看下面的二叉樹 二叉樹需要載入到記憶體的,如果二叉樹的節點少,沒有什麼問題,但是如果二叉樹的節點很多 比如1億 就存在如下問題 問題1 在構建二叉樹時,需要多次進行i o操作 海量資料存在資料庫或檔案中 節點海量,構建二叉樹時,...
B 樹與B 樹小結
一 b 樹 1.b 樹定義與特性 b 樹是b 樹的變體,也是一種多路搜尋樹 其定義基本與b 樹同,除了 1 非葉子結點的子樹指標與關鍵字個數相同 2 非葉子結點的子樹指標 p i 指向關鍵字值屬於 k i k i 1 的子樹 b 樹是開區間 3 為所有葉子結點增加乙個鏈指標 4 所有關鍵字都在葉子結...
B樹與B 樹索引
b 樹 資料庫結構使用樹的結構索引,從演算法邏輯上看,二叉查詢樹的查詢速度和比較次數都是最小的。資料庫的索引儲存在磁碟上,當資料量比較大的時候,索引的大小可能有幾個g 甚至更多。當我們利用索引查詢的時候,不可能把整個索引載入到記憶體,能做的只有逐一載入每乙個磁碟頁,磁碟頁對應索引樹的節點。當利用二叉...