MySql教程

为什么数据库中要使用B+tree索引,而不用hash索引?MySQL中的B+tree索引介绍

本文主要是介绍为什么数据库中要使用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树演化而来。一个int有序数组转化为二叉查找树示例图:

 所有的节点都有,称之为满二叉树。

这篇关于为什么数据库中要使用B+tree索引,而不用hash索引?MySQL中的B+tree索引介绍的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!