为什么不用哈希
无论读还是写,哈希都比树更快,那为什么索引结构要选用树型结构呢?因为对于分组、排序、比较,哈希型索引的时间复杂度会退化到O(n),而这类查询实际业务中会经常出现。
为什么不用二叉树
二叉树每个节点只分两个叉,每个节点只能存储一个记录,随着数据量的增大,树的高度会显著增高,而的高度越高,查询速度就越慢。而B树,每个节点可分多个叉,且可存储多条记录,因此树的高度降低了,它可充分发挥局部性原理。所谓局部性原理,就是大概率使用查询数据附近的数据,这个原理是基于磁盘预读的,这样可以减少磁盘IO。
为什么不用B-树
B-树每层节点数目非常多,层数很少,相比二叉树减少了磁盘IO次数,但每个节点都存储数据,查询需要进行中序遍历,并不是快速定位数据的最佳方式。
为什么用B+树,而不用B树
B+树在B树基础上进行了改进,数据只存储在叶子节点上,且叶子节点之间增加了链表,这样获取节点时,不用中序遍历,这样便于快速定位数据,是减少磁盘IO的最佳方式。
参考地址:https://www.lizenghai.com/archives/67974.html
https://blog.csdn.net/chai471793/article/details/99563704
原文链接:https://blog.csdn.net/weixin_40213018/article/details/88738427