为什么数据库中要使用B+tree索引,而不用hash索引?MySQL中的B+tree索引介绍
Posted 梦幻朵颜 Joyce Zhu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么数据库中要使用B+tree索引,而不用hash索引?MySQL中的B+tree索引介绍相关的知识,希望对你有一定的参考价值。
Hash索引的查找速度很快,几乎是O1的,但是为什么不适用 HashMap 来做数据库索引呢?
1、区间值难找。因为单个值计算会很快,而找区间值,比如 100 < id < 200 就悲催了,需要遍历全部hash节点。
2、排序难。通过hash算法,也就是压缩算法,可能会很大的值和很小的值落在同一个hash桶里,比如一万个数压缩成1000个数存到hash桶里,也就是会产生hash冲突。
mysql的InnoDB存储引擎支持以下常见索引:B+tree索引(最关键)、全文索引、Hash索引(内部)
B+tree
B+tree是通过二叉查找树,再由平衡二叉树,B树演化而来,
以上是关于为什么数据库中要使用B+tree索引,而不用hash索引?MySQL中的B+tree索引介绍的主要内容,如果未能解决你的问题,请参考以下文章