B樹,B+樹,B*樹 演算法
阿新 • • 發佈:2018-12-25
總結
B樹:
是為了磁碟或其它儲存裝置而設計的一種多叉平衡查詢樹
B和B+樹的區別:
B樹在提高了磁碟IO效能的同時並沒有解決元素遍歷的效率低下的問題。正是為了解決這個問題,B+樹應運而生。B+樹只要遍歷葉子節點就可以實現整棵樹的遍歷。而且在資料庫中基於範圍的查詢是非常頻繁的,而B樹不支援這樣的操作(或者說效率太低)。
B+樹的非葉子結點只包含導航資訊,不包含實際的值,所有的葉子結點和相連的節點使用連結串列相連,便於區間查詢和遍歷。
B+與B*樹的區別:
B*樹中非根和非葉子結點再增加指向兄弟的指標。
前言
咱們有面對這樣一個實際問題:就是大規模資料儲存中,實現索引查詢這樣一個實際背景下
B樹
介紹
B樹是為了磁碟或其它儲存裝置而設計的一種多叉平衡查詢樹。
B樹與紅黑樹最大的不同在於,B樹的結點可以有許多子女,從幾個到幾千個。因為與紅黑樹一樣,一棵含n個結點的B樹的高度也為O(lgn),但可能比一棵紅黑樹的高度小許多
2B樹(4B樹類似)
插入動畫
B+樹
介紹
(1)非葉結點僅具有索引作用,跟記錄有關的資訊均存放在葉結點中。
(2)所有的葉子結點中包含了全部關鍵字的資訊。
(3)樹的所有葉結點構成一個有序連結串列,可以按照關鍵碼排序的次序遍歷全部記錄。
插入動畫
B*樹
介紹
在B+樹的基礎上(所有的葉子結點中包含了全部關鍵字的資訊,及指向含有這些關鍵字記錄的指標),B*樹中非根和非葉子結點再增加指向兄弟的指標;