一 前言
- 索引 ( index)是帮助MysqL 高效获取数据 的 排好序的数据结构 。
- 通过索引查找数据,在维护的索引数据结构上,通过比大小的方式,查找对应数据,数据结构排好序,可以加快查找。
- 接下来我们就从排好序、数据结构两方面,对比不同类型的索引数据结构。
二 MySQL索引数据结构
索引结构 | 描述 |
---|---|
BTREE索引 | 一般指B+Tree,最常见的索引类型,大部分引擎都支持B+Tree索引。 |
HASH | 底层结构用哈希表实现的,只有精确匹配索引列的查询才有效,不支持范围查询。 |
R-Tree(空间索引) | 空间索引是MyISAM引擎的一个特殊索引类型,主要用于地理空间数据类型,通常使用较少。 |
Full-text(全文索引) | 是一种通过建立倒排索引,快速匹配文档的方式。类似于Lucene,Solr,ES。 |
三 常见的数据结构对比
- 在树上查找,实际上查找次数,和树的高度有很大关系,树高度越小,查询越快。
1 二叉树
1 对于单边增长的数据链,二叉树维护的是一条线,树的高度很高,对查询效率没有提升。
2 二叉树:是按照