Hash索引结构的特殊性,其检索效率非常高,索引的检索可以一次定位,不像B+树索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,那为什么大家不都用Hash索引而还要使用B+树索引呢?

1. Hash索引仅仅能满足"=","IN"和"<=>"查询,不能使用范围查询。因为经过相应的Hash算法处理之后的Hash值的大小关系,并不能保证和Hash运算前完全一样;

2. Hash索引无法被用来避免数据的排序操作。因为Hash值的大小关系并不一定和Hash运算前的键值完全一样;

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

4. Hash索引在任何时候都不能避免表扫描。由于不同索引键存在相同Hash值,所以即使取满足某个Hash键值的数据的记录条数,也无法从Hash索引中直接完成查询,还是要回表查询数据;

5. Hash索引遇到大量Hash值相等的情况后性能并不一定就会比B+树索引高。

最新文章

  1. 关于JSON的那些事儿
  2. CLR via C#(13)-浅谈事件
  3. .NET开源项目常用记录
  4. Docker常用操作
  5. sublime text 也能矩形选择
  6. Mac OS X 上的安装Lisp开发环境
  7. WebBrowers &amp; HtmlViewers collection
  8. PHP第一课:开发环境配置
  9. tiny4412学习笔记-将uboot、zImage、文件系统烧到emmc中
  10. Is it possible to implement a Firebug-like “inspect element” DOM element highlighter with client-side JavaScript?
  11. USB硬盘 raw之后,DiskGenius 恢复
  12. java实现网络爬虫
  13. Lease问题
  14. WordPress版微信小程序安装使用说明
  15. [其它]安装ios12 developer beta 3出错
  16. Vue.js——理解与创建使用
  17. MATLAB总结二
  18. poj-1015(状态转移的方向(01背包)和结果的输出)
  19. JDK 6和JDK 7的intern方法之不同
  20. php CURL 请求头和响应头获取

热门文章

  1. JS 控制特殊字符
  2. css优先级及其对应的权重
  3. Python诞生以来意义菜谱
  4. requests模块发送数据
  5. NPOI 将excel转换为datatable或者将datatable转换为excel
  6. java 使用POI导出百万级数据
  7. Dart的List比较特殊的几个API
  8. 蓝桥杯BASIC-13 数列排序
  9. zencart价格筛选插件
  10. CodeForces - 1221E Game With String 分类讨论