mysql索引结构为什么是B+树而不是二叉树和hash(哈希)

博客探讨了为何不选择哈希和二叉树,而是采用B+树。指出哈希虽速度快,但只能精确定位,不能进行比较操作、不好排序且不能用部分索引;还介绍了二叉树到B树再到B+树的演变,B树解决了二叉树不均衡问题,B+树让树路径更短。

为什么不是哈希?

hash速度远快于B+树,但是hash存在几个比较关键的问题:

  1. hash只能精确定位到一条数据,只能用=或者in,不能实现比较操作大于小于。
  2. hash不好排序。
  3. hash不能用部分索引。

 

为什么不是二叉树?

二叉树和B+树的关系:

二叉树 ==> B树(Balance Tree 平衡树)==> B+树

BTree解决了二叉树的不均衡问题,使得叶子节点到跟节点距离都一样(满树状态),让树结构矮胖。

B+Tree在BTree基础上,将树路径变得更短,每层不止两个子节点。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值