数据库之索引篇(二)

索引数据结构

       Hash

          哈希索引即采用一定的哈希算法将键值转化为哈希值,得到数据的存放位置,检索时一次哈希即可找到对应的位置,查询速度极快,时间复杂度O(1)

          Hash 索引结构的特殊性,其检索效率非常高,索引的检索可以一次定位,既然 Hash 索引的效率要比 B树索引 高很多,为什么大家不都用 Hash 索引而还要使用 B-Tree 索引呢?

          原因:

          1. Hash索引只支持等值比较

           由于哈希的无序性,无法进行范围查找及排序操作

          2. Hash 索引不支持多列联合索引的最左匹配规则

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

          3. Hash索引在任何时候都不能避免表扫描

          Hash 索引是将索引键通过 Hash 运算之后,将 Hash运算结果的 Hash 值和所对应的行指针信息存放于一个 Hash 表中,由于不同索引键存在相同 Hash 值(哈希碰撞),所以即使取满足某个 Hash 键值的数据的记录条数,也无法从 Hash 索引中直接完成查询,还是要通过访问表中的实际数据进行相应的比较,并得到相应的结果。

       B树

           在理解的B树这种数据结构之前,先搞懂二叉树概念,二叉树即N个节点包括根节点及两棵左右互不相交

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值