MySQL索引数据结构为什么使用B+树

 


使用哈希索引的缺点

使用哈希可以快速查找到一个值,但是由于哈希的算法导致每个key对应的value是随机的

那么如果我们要在数据库查找比如一个范围的数据时,那么如果使用哈希索引就GG了

同时哈希索引的value是可能相同的,那么就需要产生额外计算 影响性能

使用二叉平衡树的缺点

数据量大时 树的高度变大 导致提取单个数据也需要一定的时间
同时不能很好的解决比如查找大于5这种操作(需要在树之间来回跳转)

使用B树缺点

B树通过一个节点可以存两个值的特点 解决了二叉平衡树的一个大问题(高度问题)

但是仍然存在查找大于5这种操作需要在树之间来回跳转的问题

B+树

模型图

保持了B树的减少高度的优点,同时在最后一层使用了排序好的链表的结构 使得在查找比如大于5的值时效率也非常高
这就是为什么mysql选择了B+树

posted @   一个经常掉线的人  阅读(56)  评论(0)    收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示