mysql B+樹索引

mysql B+樹索引

2015-07-06 性能與架構 性能與架構


上圖就是一棵B+樹,每一個部分有3個主要概念:物理磁盤塊、數據項(藍色)、指針(紅色)

如磁盤塊1,包含數據項 1七、35,包含指針 P一、P二、P3,P1指向小於17的磁盤塊,P2指向在17和35之間的磁盤塊,P3指向大於35的磁盤塊

真實的數據存於葉子節點中,即 三、五、九、十、1三、1五、2八、2九、3六、60、7五、7九、90、99

非葉子節點中並不存放真實數據項,只存放指引搜索方向的數據項,如 1七、35 並不真實存在於數據表中

B+樹查找過程

若是要查找數據項29

1. 首先會把磁盤塊1由磁盤加載到內存,此時發生一次IO

2. 在內存中用二分查找肯定29在17和35之間,鎖定磁盤塊1的P2指針,經過P2指向的磁盤地址,把磁盤塊3由磁盤加載到內存,發生第二次IO

3. 29在26和30之間,鎖定磁盤塊3的P2指針,經過指針加載磁盤塊8到內存,發生第三次IO

4. 內存中作二分查找找到29,結束查詢

總計三次IO,便可找到目標數據項

3層的B+樹能夠表示上百萬的數據,對查詢性能的提升是巨大的微信

相關文章
相關標籤/搜索