揭秘!MySQL索引背后的秘密武器:B+树为何力压跳表,独领风骚?

在这里插入图片描述

引出

想象一下,你正在一家巨大的图书馆工作,这里藏书百万册,读者络绎不绝,每个人都想尽快找到他们想要的书籍。图书馆的布局有两种设计方案摆在你面前:

方案A:使用传统的目录卡片系统,就像老式的图书馆一样,每本书的信息都写在一张卡片上,按照字母顺序排列在一个巨大的抽屉柜里。这听起来就像是线性的数据存储,查找一本书的性能是O(n)——如果我们要找的是最后一本书,可能要翻阅整个抽屉!

方案B:使用现代的计算机系统,它采用B+树结构来索引所有的书籍。这意味着无论你要找哪一本书,计算机都能迅速定位,就像有了GPS导航一样,查找性能提升到了O(log N)。

那么,如果有人建议我们用跳表来代替B+树呢?跳表就像是在图书馆的每排书架上方都挂了一个指示牌,每个指示牌又指向下一个指示牌,这样找书时就可以跳跃式前进,减少行走的距离,性能同样是O(log N),并且实现也很简单,那为什么Mysql的索引不使用跳表呢?用跳表做索引的Mysql又有什么不一样呢?

在这里插入图片描述
在这里插入图片描述

MySQL的B+树索引:

MySQL主要面向磁盘存储,其中的InnoDB存储引擎使用B+树作为索引结构。B+树具有以下特点:

  1. 所有的叶子节点都存储实际的数据,非叶子节点只存储索引信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值