索引 - 数据结构 - BTREE
BTREE 結構
BTree又叫多路平衡搜索樹,一顆m叉的BTree特性如下:
-
樹中每個節點最多包含m個孩子。
-
除根節點與葉子節點外,每個節點至少有[ceil(m/2)]個孩子。
-
若根節點不是葉子節點,則至少有兩個孩子。
-
所有的葉子節點都在同一層。
-
每個非葉子節點由n個key與n+1個指針組成,其中[ceil(m/2)-1] <= n <= m-1
以5叉BTree為例,key的數量:公式推導[ceil(m/2)-1] <= n <= m-1。所以 2 <= n <=4 。當n>4時,中間節點分裂到父節點,兩邊節點分裂。
插入 C N G A H E K Q M F W L T Z D P R X Y S 數據為例。
演變過程如下:
1). 插入前4個字母 C N G A
?2). 插入H,n>4,中間元素G字母向上分裂到新的節點
3). 插入E,K,Q不需要分裂
4). 插入M,中間元素M字母向上分裂到父節點G
5). 插入F,W,L,T不需要分裂
6). 插入Z,中間元素T向上分裂到父節點中
7). 插入D,中間元素D向上分裂到父節點中。然后插入P,R,X,Y不需要分裂
?8). 最后插入S,NPQR節點n>5,中間節點Q向上分裂,但分裂后父節點DGMT的n>5,中間節點M向上分裂
到此,該BTREE樹就已經構建完成了, BTREE樹 和 二叉樹 相比, 查詢數據的效率更高, 因為對于相同的數據量來說,BTREE的層級結構比二叉樹小,因此搜索速度快。
超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生總結
以上是生活随笔為你收集整理的索引 - 数据结构 - BTREE的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL 高级 - 索引 - 数据结构
- 下一篇: 索引 - 数据结构 - B+TREE