Mysql 索引为什么要使用 B+ 树作为数据结构

这就要从各种数据结构的不足开始分析了:

哈希表:无法均匀分布数据,浪费空间;数据量很大时扩容吃力;数据量很大时哈希冲突很致命;范围查找需遍历

各种查找树:索引是存储在磁盘中的,考虑到索引可能会很大,所以不会一次性全部加载到内存中进行处理,每次 IO 只能取一个节点到内存中,比较后再取下一个节点,直到找到目标关键字。数据量很大时树会变得非常深,导致 IO 次数过多,效率低下

B 树:相同层数存储数据量不及 B+ 树;范围查找效率不及 B+ 树

B+ 树:对于千万数据量的数据库来说,3 到 4 层 B+ 树足够了,也就是最多进行 4 次 IO 便可检索指定数据;范围检索时只需要检索到范围最小值,然后通过叶子节点的指针一直遍历到范围最大值即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值