B+樹 是一個平衡的二元搜尋樹,它遵循多級索引格式。
在B+樹中,每個葉節點與根節點的距離相等。B+樹的順序為n
,其中n
對於每個B+
樹是固定的。
它包含內部節點和葉節點。
內部節點
葉節點
n
個記錄指標和n
個鍵值。假設要在下面的B+樹結構中搜尋55
。 首先,獲取中間節點,該節點將指向可包含55
的記錄的葉節點。
因此,在中間節點中,將找到50
到75
個節點之間的分支。 然後在最後,重定向到第三個葉節點。這裡DBMS將執行順序搜尋以找到55
。
假設要在下面的結構中插入記錄60
。 它將在55
之後轉到第3
個葉子節點。它是一個平衡樹,並且該樹的葉節點已經滿了,所以不能在那裡插入60
。
在這種情況下,必須要拆分葉節點,以便可以將其插入樹中而不會影響填充因子,平衡和順序。
第3
個葉節點具有值(50,55,60,65,70)
,其當前根節點為50
。在中間拆分樹的葉節點,以便不改變其平衡。 因此,可以將(50,55)
和(60,65,70)
分組為2
個葉節點。
這兩個必須是葉節點,則中間節點不能從50
分支。它應該新增60
,然後有一個指向新葉節點的指標。
這是在有溢位時插入條目的方法。 在正常情況下,很容易找到它所適合的節點,然後將其放在該葉節點中。
假設要從上面的例子中刪除60
。 在這種情況下需要從中間節點以及第4葉節點中刪除60
。 如果從中間節點中刪除它,那麼樹將不滿足B+樹的規則。 所以需要修改它以獲得平衡的樹。
從B+樹上方刪除節點60
並重新排列節點後,將顯示如下: