Mysql 索引與數據結構

Innodb索引存儲數據結構 :B+樹

特點:

1 只有葉子節點存儲真實數據,其餘節點只存放 index關鍵字+指針 。讓節點能存放更多index、減少層高。  

  且葉子節點存儲是有序的鏈表,有助於範圍查找和排序。

2 層高影響命中一行數據的IO操作次數。命中一個節點相當於一次IO操作。

3 每個節點16k。索引列的數據類型決定每個節點存放多少key。integer爲4字節、bigint爲8字節。

  節點存儲的index越多,同樣數據量下樹的層數越低,IO操作次數越少性能越好。

  平均2000w一般數據index,b+樹能保持在3-4層結構。

高度計算:https://www.cnblogs.com/songpingyi/p/10730156.html

4 數據發生變化時,樹通過分裂保證結構正確性。

5 innodb主鍵索引的葉子節點纔會保存數據地址,其他索引葉子節點只保存主鍵索引。

若沒有設置主鍵,則mysql使用隱藏列rowid作爲主鍵。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章