實際上它就是B樹的變種,以一顆最大度數(max-degree)為4(4階)的b+tree為例:
所有的元素都會出現在葉子節點,
葉子節點形成一個單向鏈表,每一個節點都會通過一個指標指向下一個元素,
Mysql索引資料結構對經典的B+Tree樹結構進行了優化,在原B+Tree樹的基礎上,增加了一個指向相鄰葉子節點的鏈表指標,就形成了一個帶有順序指標的B+Tree,提高區間的訪問性能,有利于資料庫的排序操作,
每個資料節點都是存盤在一個頁當中的,
可以通過一個資料結構可視化的網站來簡單演示一下, https://www.cs.usfca.edu/~galles/visualization/BPlusTree.html
插入一組資料: 100 65 169 368 900 556 780 35 215 1200 234 888 158 90 1000 88 120 268 250 ,然后觀察一些資料插入程序中,節點的變化情況,
最終我們看到,B+Tree 與 B-Tree相比,主要有以下三點區別:
所有的資料都會出現在葉子節點,
葉子節點形成一個單向鏈表,
非葉子節點僅僅起到索引資料作用,具體的資料都是在葉子節點存放的,
MySQL索引資料結構對經典的B+Tree進行了優化,在原B+Tree的基礎上,增加一個指向相鄰葉子節點
的鏈表指標,就形成了帶有順序指標的B+Tree,提高區間訪問的性能,利于排序,

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/545901.html
標籤:其他
上一篇:SQL性能分析
下一篇:SQL性能分析
