Hash索引和B+树所有有什么区别或者说优劣呢?

706 阅读1分钟

底层原理

  • hash索引底层是hash表
  • b+树底层是多路平衡查找树

等值查询速度

一般情况下,Hash索引在等值查询时效率高

范围查询的支持

hash索引不支持,b+树索引支持。

hash索引的顺序和原顺序不一致,故不支持。

B+树左节点小于父节点,右节点大于父节点,故支持。

其他

  • 哈希表不支持索引排序,不支持组合索引的最左前缀原则,不支持模糊查询

  • 哈希索引不能避免回表操作,hash索引在使用聚集索引或者覆盖索引的时候可以不回表

  • 哈希索引不稳定,如果出现hash碰撞,效率较低。

综上所述,在多数情况下,使用稳定且速度较快的b+树索引