首頁 >常見問題 >btree索引原理是什麼

btree索引原理是什麼

藏色散人
藏色散人原創
2020-07-01 09:34:264383瀏覽

btree索引原理即二元樹導致樹高度非常高,邏輯上很近的節點,物理上非常遠,無法利用局部性,IO次數多,查找效率低;Btree是一種平衡的「m -way」尋找樹,它可以利用多個分支節點來減少查詢資料時所經歷的節點數。

btree索引原理是什麼

BTree索引原理

#二元樹導致樹高度非常高,邏輯上很近的節點,物理上非常遠,無法利用局部性,IO 次數多,查找效率低

Btree是一種平衡的m-way查找樹,它可以利用多個分支節點(子樹節點)來減少查詢資料時所經歷的節點數,從而達到節省存取時間的目的。 m稱為B-Tree的度數。

B 樹可以看作是對2-3查找樹的一種擴展,即他允許每個節點有M-1個子節點。

特點

  • 有一個根節點,根節點只有一個記錄和兩個孩子或根節點為空;

  • #每個節點記錄中的key和指標相互間隔,指標指向孩子節點;

  • d是表示樹的寬度,除葉子節點之外,其它每個節點都有[d/2,d-1]筆記錄,並且些記錄中的key都是從左到右按大小排列的,有[d/2 1,d]個孩子;

  • #在一個節點中,第n個子樹中的所有key,小於這個節點中第n個key,大於第n-1個key;

  • 所有的葉子節點必須在同一層次,也就是它們具有相同的深度;

  • 由於B-Tree的特性,在B-Tree中按key檢索資料的演算法非常直觀:首先從根節點進行二分查找,如果找到則返回對應節點的data,否則對對應區間的指針指向的節點遞歸進行查找,直到找到節點或找到null指針,前者查找成功,後者查找失敗。

推薦:《mysql教學

以上是btree索引原理是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn