数据库B树索引和hash索引的优缺点比较

本文探讨了B树索引与哈希索引在数据库中的优缺点。B树索引适用于全键值、键值范围或键前缀查找,支持范围查询,而哈希索引则擅长等值查询,但不支持范围查询。哈希索引基于键值映射,无法用于排序或部分索引列匹配。理解这两种索引的数据结构对于数据库性能优化至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  我又来了,接着上一篇的一个疑问,B树索引和hash索引的区别到底是什么?带着这样的疑问,我找到了一个总结的比较全面的一个博文:http://blog.sina.com.cn/s/blog_b92fcb510102vvdt.html ,emmmmm这篇文章呢,总结的是比较好的,但是没有介绍底层的数据结构区别,可能导致没有学习好数据结构的同学比较难以理解,需要记住这些区别,不能靠背诵课文一样一条一条一条背,要从底层的数据结构上面去理解,为啥hash等值查询比较快,不适用于范围查询,你知道hash是什么样的结构,你会觉得这样的结论理所当然,反之就是一头雾水。终于明白学校上的数据结构这种看起来没有什么明面上的好处的课程,是什么原因了。有的东西就是其实很简单,你觉得看一下这不懂那里不懂,就觉得太难放弃了,其实就是差一点耐心。咳咳,差点扯远了。
  数据结构emmmm我搁这一两句也讲不清楚,贴一个博文比较清晰简明的讲了一下数据结构的基础知识 http://blog.youkuaiyun.com/wl044090432/article/details/53423333 温习一下,然后再来看看B树和hash的区别。
  B树索引意味着记录是按照索引的值进行顺序排列的,并且每一个叶子页到根的距离相同。B-Tree索引适用于全键值、键值范围或者键前缀查找。以索引key(a,b,c)为例。

  • 全值匹配​:可以查找a=1 and b=1 and c=1
  • 匹配最最前缀:可以查找a=1
  • 匹配列前缀:可以查找a like ‘a%’​​
  • 匹配范围值:可以查找 a>1 and​ a<10

      全值匹配,那么abc三个索引组合的值就能确定,可以在B树上就找出满足这三个条件的记录主键(为什么是记录主键而不是记录的值或者位置,可以看上一篇文章,聚集索引时通往真实数据的

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值