B樹和B+樹

一、B樹

    1. B樹:平衡多路查找樹(不止二叉),節點中有多個關鍵字,左小右大的順序;

    2. 假設是5階樹(M=5),則枝節點的關鍵字數量 >= ceil(M/2)-1 且 <= M-1,即5階樹的關鍵字數量爲2~4;

    3. 插入:當插入第五個元素時(大於4),把中間的節點升級成父節點,左右分別變成左右子節點;
        刪除:當刪除元素之後導致關鍵字數等於1或0時(小於2),需要合併節點:先從子節點取,子節點沒有符合條件時就向父節點取

    4. 對比平衡二叉樹:每個節點包含的關鍵字增多了,樹的層級比原來的二叉樹少了,減少查找的次數和複雜度

 刪除規則:

 

二、B+樹

    1. B+樹:B樹的升級版,充分利用節點空間,查詢效率更高。

    2. 規則:1.非葉子結點不保存關鍵字記錄的指針,只保存關鍵字本身做數據索引
                  2.葉子節點保存了父節點的所有關鍵字記錄的指針,只有葉子節點纔有指針,所以每次查詢的次數都一樣。
                  3.葉子節點的關鍵字從小到大有序排列左邊結尾數據會保存右邊節點開始數據的指針(串起來了)
                  4.所有非葉子節點的子節點數 = 關鍵字數量

    3. 特點:1.B+數層級更少:每個節點存的關鍵字數比B樹更多,所以層級更少查詢更快;
                  2.查詢速度更穩定:只有葉子節點上纔有地址的指針數據;
                  3.天然具備排序功能:所有葉子節點構成一個有序鏈表,區間查詢更方便;
                  4.全節點遍歷更快:不像B樹需要遍歷每一層,有利於數據庫掃全表

    4. B樹比B+樹的優點:如果經常訪問的數據離跟節點很近,則速度更快。

preview

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章