索引的类别

从数据结构的角度来看,常用的索引有哈希表、有序数组和搜索树。

哈希索引

通过Hash算法将数据库字段数据转换成定长的Hash值,与这条数据的行指针一并存入Hash表的对应位置;也就是说,哈希表是一种以键 – 值(key-value)存储数据的结构,每次输入待查找的key,就可以得到对应的值value,从而快速确定出要查找的数据。

通常数据库的哈希索引应对哈希冲突(多个不同的key映射到同一个value)的方法是拉链法,即以该value为首建立一个链表,将所有映射到该值的节点都以链表形式串联到后面,因此,如果哈希冲突过于频繁,会非常影响哈希索引的效率。在检索查询时,对待查询的关键字再次执行相同的Hash算法,得到Hash值,到对应Hash表对应位置取出数据即可,如果发生Hash碰撞,则需要在取值时进行筛选。

目前主流的使用哈希索引的引擎较少,主要是Memory。

有序数组

有序数组,顾名思义,就是按照某种顺序排序好的数组,因此它支持等值查询和范围查询。

版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《索引的类别》
文章链接:https://zhuji.vsping.com/6908.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。