MySql索引結構

索引是幫助MySQL高效獲取的數據的 排好序數據結構算法

B Tree 結構數據結構

  • 葉子節點具備相同的深度,葉子節點的指針爲空,
  • 全部索引元素不重複,
  • 葉子節點的數據從左往右遞增排列

B+Tree 索引性能

  • 非葉子節點不存儲data,只存儲索引,能夠放更多索引
  • 葉子節點包含全部的索引字段,
  • 葉子之間使用指針連接(單向),提升區間訪問性能

MySQL所使用的B+Tree索引,通過了改造,葉子節點之家使用雙向指針連接
默認一個節點大小爲16kb指針

MyISAM 存儲引擎
非彙集索引,索引文件和數據分離,葉子節點裏面data,存儲的是數據地址blog

InnoDb 存儲引擎
主鍵索引屬於彙集索引,葉子節點data裏面包含了完整的數據記錄  
非主鍵索引屬於非彙集索引,爲了數據的一致性和節省存儲空間,葉子節點data裏面存儲了主鍵ID排序

Hash 索引
根據查詢key值,經過hash算法,以及hash表,直接能夠定位到數據存儲的地址,效率很是高,不受數據量影響
不支持模糊查詢,不支持範圍查詢,不支持排序索引

聯合索引結構
按照建立聯合主鍵幾個字段的順序進行排序,組合保存在B+Tree的葉子節點hash

相關文章
相關標籤/搜索