1. 首页
  2. 行情

hash索引

索引列值的哈希值+数据行指针:因此找到后还需要根据指针去找数据,造成随机I/O

索引列值的哈希值+数据行指针:因此找到后还需要根据指针去找数据,造成随机I/O

适合:

精确匹配

不适合:

模糊匹配

范围匹配

不能排序

摘抄其他人的的总结:

1、hash索引仅满足“=”、“IN”和“<=>”查询,不能使用范围查询

? 因为hash索引比较的是经常hash运算之后的hash值,因此只能进行等值的过滤,不能基于范围的查找,因为经过hash算法处理后的hash值的大小关系,并不能保证与处理前的hash大小关系对应。

2、hash索引无法被用来进行数据的排序操作

? 由于hash索引中存放的都是经过hash计算之后的值,而hash值的大小关系不一定与hash计算之前的值一样,所以数据库无法利用hash索引中的值进行排序操作。

3、对于组合索引,Hash 索引在计算 Hash 值的时候是组合索引键合并后再一起计算 Hash 值,而不是单

? 独计算 Hash 值,所以通过组合索引的前面一个或几个索引键进行查询的时候,Hash 索引也无法被利用。

4、Hash 索引遇到大量Hash值相等的情况后性能并不一定就会比B-Tree索引高。

? 对于选择性比较低的索引键,如果创建 Hash 索引,那么将会存在大量记录指针信息存于同一个 Hash 值相关联。这样要定位某一条记录时就会非常麻烦,会浪费多次表数据的访问,而造成整体性能低下。

总结:哈希适用在小范围的精确查找,在列数据很大,又不需要排序,不需要模糊查询,范围查询时有用

—-

编译者/作者:嘿嘿嘿

玩币族申明:我们将尊重作者/译者/网站的版权,促进行业健康发展,如有错误或不完整之处请与我们联系。

联系我们

17805983018

在线咨询:点击这里给我发消息

邮件:943663009@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code