紅/黑樹狀結構 B-樹 B+樹 資料庫索引

來源:互聯網
上載者:User

標籤:

紅/黑樹狀結構, 是一顆有特殊性質的二叉尋找樹,

節點,要麼紅要麼黑

根節點是黑的

分葉節點是黑的

如果一個節點是紅的,那麼它的兩個兒子是黑的

對任意節點而言,其道分葉節點樹尾端NIL指標的每條路徑都包含相同資料的黑節點

 

在插入或刪除節點時,可能會改變紅/黑樹狀結構的性質,需要調整使得繼續保持性質,常用的操作為左旋和右旋

紅/黑樹狀結構的左旋和右旋:

左旋pivot:

以pivot-Y為軸,Y稱為新的根節點,Y的左子樹稱為pivot的右子樹

 

右旋pivot:

以pivot-Y為軸,Y稱為新根,pivot為Y的新右子樹

 

 

B-樹(B樹)

用階定義的B樹

    B 樹又叫平衡多路尋找樹。一棵m階的B 樹 (註:切勿簡單的認為一棵m階的B樹是m叉樹,雖然存在四叉樹,八叉樹,KD樹,及vp/R樹/R*樹/R+樹/X樹/M樹/線段樹/希爾伯特R樹/優先R樹等空間劃分樹,但與B樹完全不等同)的特性如下:

樹中每個結點最多含有m個孩子(m>=2);

除根結點和葉子結點外,其它每個結點至少有[ceil(m / 2)]個孩子(其中ceil(x)是一個取上限的函數);

若根結點不是葉子結點,則至少有2個孩子(特殊情況:沒有孩子的根結點,即根結點為葉子結點,整棵樹只有一個根節點);

所有葉子結點都出現在同一層,葉子結點不包含任何關鍵字資訊(可以看做是外部接點或查詢失敗的接點,實際上這些結點不存在,指向這些結點的指標都為null);(讀者反饋@冷嶽:這裡有錯,葉子節點只是沒有孩子和指向孩子的指標,這些節點也存在,也有元素。@研究者July:其實,關鍵是把什麼當做葉子結點,因為如紅/黑樹狀結構中,每一個NULL指標即當做葉子結點,只是沒畫出來而已)。

每個非終端結點中包含有n個關鍵字資訊: (n,P0,K1,P1,K2,P2,......,Kn,Pn)。其中:
       a)   Ki(i=1...n)為關鍵字,且關鍵字按順序升序排序K(i-1)< Ki。 
       b)  Pi為指向子樹根的接點,且指標P(i-1)指向子樹種所有結點的關鍵字均小於Ki,但都大於K(i-1)。 
       c)   關鍵字的個數n必須滿足: [ceil(m /2)-1]<= n <= m-1。

 

B+樹:B樹的一個變種

m階B+樹與B樹的異同:

n顆子樹的節點中含有n-1個關鍵字

所有的關鍵字資訊都在葉子節點上

非終端節點可以看成是索引

葉子節點從小到大順序連結

 

為什麼B+樹比B樹更適合作為作業系統中檔案索引和資料庫索引:

1.B+樹的磁碟讀寫代價更低

內部節點更小,在相同的盤塊中,可以存放的內部節點更多,一次性讀入記憶體中的需要尋找的關鍵字也越多。

B樹的每個節點都是以key_address的形式儲存的,而B+樹的非葉子節點只需要儲存key,address資訊可以放在葉子節點上。所以在搜尋的時候,一次讀入的資料區塊能包含更多的節點,提高檢索效率

2.查詢效率更穩定

每次查詢都需要從根節點到葉子節點

3.葉子節點從左至右連結,根據局部性原理,方便載入左右資料

紅/黑樹狀結構 B-樹 B+樹 資料庫索引

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.