admin 发表于 2021-3-26 11:45:15

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

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

admin 发表于 2021-3-26 11:45:22

"hash索引
   1:hash索引进行等值查询更快(一般情况下)但是却无法进行范围查询.因为在hash   索引中经过hash函数建立索引之后,索引的顺序与原顺序无法保持一致,不能支   持范围查询.
   2:hash索引不支持模糊查询以及多列索引的最左前缀匹配,因为hash函数的不可预   测,AAAA和AAAAB的索引没有相关性.
   3:hash索引任何时候都避免不了回表查询数据.
   4:hash索引虽然在等值上查询叫快,但是不稳定,性能不可预测,当某个键值存在大   量重复的时候,发生hash碰撞,此时查询效率可能极差.
   5:hash索引不支持使用索引进行排序,因为hash函数的不可预测.

B+树
   1:B+树的所有节点皆遵循(左节点小于父节点,右节点大于父节点,多叉树也类似)自   然支持范围查询.
   2:在符合某些条件(聚簇索引,覆盖索引等)的时候可以只通过索引完成查询.不需要   回表查询.
   3:查询效率比较稳定,对于查询都是从根节点到叶子节点,且树的高度较低.
"
页: [1]
查看完整版本: 【mysql】 Hash索引和B+树索引有什么区别或者说优劣呢?