码迷,mamicode.com
首页 > 其他好文 > 详细

基于哈希的索引和基于树的索引有什么区别?

时间:2018-09-27 17:03:59      阅读:243      评论:0      收藏:0      [点我收藏+]

标签:操作   查找   组合索引   哈希算法   无法   多叉树   碰撞   而不是   排序   

 

B+树是一个平衡的多叉树。B+树从根节点到叶子节点的搜索效率基本相当,不会出现大幅波动。

哈希索引采用一定的哈希算法,把键值换成新的哈希值,检索时不需要类似B+树那样从根节点逐级查找,只需一次哈希算法即可立刻定位到相应的位置。

两者的区别:

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

(等值查询。哈希索引具有绝对优势(前提是:没有大量重复键值,如果大量重复键值时,哈希索引的效率很低,因为存在所谓的哈希碰撞问题。))

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

3.对于组合索引,Hash 索引在计算 Hash 值的时候是组合索引键合并后再一起计算 Hash 值,而不是单独计算 Hash 值,所以通过组合索引的前面一个或几个索引键进行查询的时候,Hash 索引也无法被利用

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

 

基于哈希的索引和基于树的索引有什么区别?

标签:操作   查找   组合索引   哈希算法   无法   多叉树   碰撞   而不是   排序   

原文地址:https://www.cnblogs.com/wuyepeng/p/9713759.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!