个别数据库的索引能够分为三类:
- B+ 树索引
- hash 索引
- 全文索引
B+ 树索引
对于 B + 树索引的详解介绍,举荐两个很好的 blog 文章:
MySQL 索引 -B+ 树(看完你就明确了)
不懂数据库索引的底层原理?那是因为你心里没点 b 树
hash 索引
对于数据库的 hash 索引能够从这篇文章对其有一个大抵理解:
数据库中的索引技术——哈希索引
简略来说,绝对于 B + 树索引,hash 索引尽管对于单个 record 的查找速度更快(个别常数级),然而它也有较多局限性:
- hash 索引只反对等值索引,对于范畴索引或是其它满足某些值的键值索引,无奈防止表扫描的操作
- Hash 索引不能利用局部索引键查问,对于组合索引,Hash 索引在计算 Hash 值的时候是组合索引键合并后再一起计算 Hash 值,而不是独自计算 Hash 值,所以通过组合索引的后面一个或几个索引键进行查问的时候,Hash 索引也无奈被利用
- hash 抵触,如果遇到大量数据 hash 值相等,那么 hash 索引的效率未必就比 B + 树索引高
全文索引
全文索引,又称为倒排索引(inverted index). 能够把它了解为关键字索引,个别的索引能够形象为:主键 - 数据的关系。而对于全文索引来说,它的索引是:关键字 - 主键。
以下能够作为一些参考对全文索引加深了解:
什么是全文索引,为什么应用全文索引
倒排索引为什么叫倒排索引?