数据结构 — 哈希表
【摘要】 目录
文章目录
目录哈希表
哈希表
哈希表,又称为散列表,是根据键值对(Key/Value)进行访问的数据结构,它让 Value 经过哈希函数的转换映射到哈希表对应的位置上,查找效率非常高。哈希索引就是基于哈希表实现的,假设我们对 name 建立了哈希索引,则查找过程如下图所示: 对于每一行数据,存储引擎都会对所有的索引列(上图中的 name 列)计...
目录
哈希表
哈希表,又称为散列表,是根据键值对(Key/Value)进行访问的数据结构,它让 Value 经过哈希函数的转换映射到哈希表对应的位置上,查找效率非常高。哈希索引就是基于哈希表实现的,假设我们对 name 建立了哈希索引,则查找过程如下图所示:
对于每一行数据,存储引擎都会对所有的索引列(上图中的 name 列)计算一个哈希码(上图散列表的位置),散列表里的每个元素指向数据行的指针,由于索引自身只存储对应的哈希值,所以索引的结构十分紧凑,这让哈希索引查找速度非常快!但是哈希索引也有它的劣势,如下:
- 针对哈希索引,只有精确匹配索引所有列的查询才有效,比如我在列(A, B)上建立了哈希索引,如果只查询数据列 A,则无法使用该索引。
- 哈希索引并不是按照索引值顺序存存储的,所以也就无法用于排序,也就是说无法根据区间快速查找。例如:Python 字段类型对象是有没有顺序的。
- 哈希索引只包含哈希值和行指针,不存储字段值,所以不能使用索引中的值来避免读取行,不过,由于哈希索引多数是在内存中完成的,大部分情况下这一点不是问题。
- 哈希索引只支持等值比较查询,包括 =, IN(),不支持任何范围的查找,如 age > 17。
文章来源: is-cloud.blog.csdn.net,作者:范桂飓,版权归原作者所有,如需转载,请联系作者。
原文链接:is-cloud.blog.csdn.net/article/details/105917999
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)