美文网首页
mysql btree hash区别粗整理

mysql btree hash区别粗整理

作者: 耗子_aca3 | 来源:发表于2020-07-25 17:47 被阅读0次

    btree

    • =,>,>=,<,<=,between以及like(不以通配符开头)操作符可用

    hash

    • Hash索引只能用于对等比较,一次定位数据,检索效率远高于BTree索引。

    比较

    • hash索引仅能满足“IN”,对等查询,不能使用范围查询。
    • 联合索引中,Hash索引不能利用部分索引键查询。
    • Hash索引无法避免数据的排序操作
    • Hash索引任何时候都不能避免表扫描
      Hash索引是将索引键通过Hash运算之后,将Hash运算结果的Hash值和所对应的行指针信息存放于一个Hash表中,由于不同索引键存在相同Hash值,所以即使满足某个Hash键值的数据的记录条数,也无法从Hash索引中直接完成查询,还是要通过访问表中的实际数据进行比较,并得到相应的结果。
    • Hash索引遇到大量Hash值相等的情况后性能并不一定会比BTree高
      对于选择性比较低的索引键,如果创建Hash索引,那么将会存在大量记录指针信息存于同一个Hash值相关联。这样要定位某一条记录时就会非常麻烦,会浪费多次表数据访问,而造成整体性能底下。

    相关文章

      网友评论

          本文标题:mysql btree hash区别粗整理

          本文链接:https://www.haomeiwen.com/subject/gdrmlktx.html