• Btree索引与hash索引的区别


    在创建索引的时候需要选择索引类型是hash还是Btree,对于两种索引类型的区别一直存在疑惑,因此今天找了些资料解答一下自己。

    Hash索引与Btree索引的区别:

    • hash索引:将索引键经过hash运算之后得出hash值和对应的行指针存放于一个hash表中。
      • 检索效率非常高,可以一次定位。
      • 仅能满足“=”、“in”、“<=>”三种查询,不能使用范围查询,不支持like查询
      • 不支持索引排序,索引值和计算出来的hash值大小不一定一致。
      • 无法使用部分组合索引,因为hash值是组合索引键合并后计算的值
      • 无法避免表扫描,无法从hash索引表中直接完成查询,需要访问表中的实际数据进行相应比较才得出相应结果。
      • 遇到大量hash值一致的情况,性能不一定比Btree索引。大量记录指针与同一个hash值相关联,定位某条记录需要多次表数据访问而造成性能低下。
    • Btree索引
      • 检索时需要经历「根节点->枝节点->叶节点」,多次IO访问。
      • 支持联合索引的最优前缀。
      • 支持like查询
      • 支持范围查询
      • 支持索引排序

      总而言之,不存在大量重复数据的精确查找,hash索引的效率要高于Btree索引。

    参考:https://mp.weixin.qq.com/s/HsCMtgJnH11wKEZODjfNlg、https://blog.csdn.net/weixin_39683912/article/details/107459324

  • 相关阅读:
    逆波兰计算器
    单链表 头指针与头结点
    Python中sorted()方法的用法
    python 元组
    Python的lambda匿名函数
    sublime text 2
    python语句讲解
    URAL 1081 Binary Lexicographic Sequence
    POJ 3623 Best Cow Line, Gold(字符串处理)
    POJ 2142:The Balance_扩展欧几里得(多组解)
  • 原文地址:https://www.cnblogs.com/smallzhen/p/14716312.html
Copyright © 2020-2023  润新知