[MySQL] 索引类型

来源:互联网 发布:淘宝服装批发进货网 编辑:程序博客网 时间:2024/04/29 18:11

MySQL的索引是由存储引擎层实现的,而不是服务器层实现的。所以,不同的存储引擎支持的索引是不一样的。

常见的索引类型

B+ 树索索引

以B树来实现,特性是非叶子结点只存储键,叶子字节存储数据(聚簇索引)或者指向数据的物理地址(非聚簇索引)。适用于全键值,键值范围,及最左前缀键只查找。

对于多列索引值只适合于最左前缀查找。

哈希索引

Memory支持哈希索引,哈希索引是基于哈希表实现的,存储引擎将所有的索引列计算出一个哈希码,并用这个哈希码指向相应的数据行。因为哈希表的特性,查询时只有精确匹配到索引的所有的列才算有效,且只能用于等值查找。

适用场景:URL查询

全文索引

提供关键字的查询,类似搜索引擎。

空间数据索引

MyISAM支持空间索引,可以用做地理位置存储。这类索引无需前缀查询,它会从所有维度来索引数据,查询时可以使用任意维度来组合查询。

对于全文索引,感觉用ElasticSearch这类的开源产品去做更适合,且ElasticSearch5.0以上也直接支持空间数据索引

0 0