1. B+树结构
- 聚簇索引
- 非聚簇索引
B+树索引并不能找到一个给定键值的具体行。B+树索引能找到的只是被查找数据行所在的页。然后数据库通过把页读入到内存,再进行查找
2. 哈希索引
h(k) = k mod m,m的取值为略大于缓冲次页数量两倍的质数
冲突解决方式:链接法
自适应哈希索引经哈希函数映射到一个哈希表中,因此对千字典类型的查找非常快速,但是对于范围查找就无能为力了
3. 全文索引
全文检索通常使用倒排索引(inverted index) 来实现,也就是通过单词找句子,而不是通过句子找单词。
倒排索引通常有两种实现方式:
- inverted file index,其表现形式为{单词,{单词所在文档id}}
- full inverted index, 其表现形式为{单词,{(单词所在文档id,单词所在文档id的位置)} (mysql使用这种方式)
限制:
每张表只能有一个全文检索的索引。
不支持没有单词界定符(delimiter) 的语言,如中文、日语、韩语等。