【mysql】 Hash索引和B+树索引有什么区别或者说优劣呢?
Hash索引和B+树索引有什么区别或者说优劣呢?"hash索引
1:hash索引进行等值查询更快(一般情况下)但是却无法进行范围查询.因为在hash 索引中经过hash函数建立索引之后,索引的顺序与原顺序无法保持一致,不能支 持范围查询.
2:hash索引不支持模糊查询以及多列索引的最左前缀匹配,因为hash函数的不可预 测,AAAA和AAAAB的索引没有相关性.
3:hash索引任何时候都避免不了回表查询数据.
4:hash索引虽然在等值上查询叫快,但是不稳定,性能不可预测,当某个键值存在大 量重复的时候,发生hash碰撞,此时查询效率可能极差.
5:hash索引不支持使用索引进行排序,因为hash函数的不可预测.
B+树
1:B+树的所有节点皆遵循(左节点小于父节点,右节点大于父节点,多叉树也类似)自 然支持范围查询.
2:在符合某些条件(聚簇索引,覆盖索引等)的时候可以只通过索引完成查询.不需要 回表查询.
3:查询效率比较稳定,对于查询都是从根节点到叶子节点,且树的高度较低.
"
页:
[1]