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

相关文章
相关标签/搜索