MySQL底层为何不选平衡二叉树,而使用B+树,看完恍然大悟

先谈谈数据库底层可选的索引方式:
建表添加索引时,不难发现,此处的下拉菜单只有两种类型的索引方式BTREE和HASH
在这里插入图片描述
1 Hash(哈希):
哈希作为一种常用的加密算法,从数据结构的角度出发,其底层是通过index=hash(xxx) 得到一个唯一加密结果,即内存地址,通过内存地址来获取value值,其实是一种key–>value类型的映射关系,通常在Redis、Memcatched等非关系型数据库中有用到,其最大的特点就是***可以快速的精确查询,但是不支持范围查询***,由于key值无法支持范围查询,如果做成了索引,那速度也是很慢的,要全部扫描,因此MySQL不得不舍弃这种数据结构;
2 二叉树:
在这里插入图片描述
再来看看为什么不选用平衡二叉树,平衡二叉树的节点之间相关联,底层作为一个双向链表,自然也支持范围搜索,但是缺点也很明显,如果需要在一个节点插入元素时,其余的节点不得不往后移,成本会很大;
3 B树
B树(B-tree)也是一种树状结构,可以存储数据、排序以及以O(log n)的时间复杂度进行查找、顺序读取、插入删除等操作。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值