MySQL的索引底层数据结构为何是B+树?

fe5a49d711b77ead9917d87b9771788b.png

点击上方蓝字关注我们

 1   索引是什么?索引数据结构有哪些?

7ed4b65fbc9922f429c1201b45bf7c4c.png

529889ad1a90ceb6ffbe15192a375ce8.png

1、索引是帮助MySQL高效获取数据的数据结构,可以将其类比成英语字典的目录,当我们要查找某个词时,通过目录(索引)定位到M,再定位y,以此类推找到SQL。如果没有目录,我们需要从整本字典中从头查找,对应的,数据库也是如此,没有了索引,就需要从整个表进行查找。

2、哈希索引、平衡二叉树索引、B树索引、B+树索引等等。

4046b10043125825bff1f2f03c5e2c34.png

4c551e1f00372a96151da73de0e1c1a6.png

e80961b3fc9a27f407bd62abcfabcad6.png

 2   哈希索引?

aadc2fe06c8f0251c9083f563f0d8e91.png

67e7e424007f87c659c6728fd2979b50.png

1、hash索引不能使用范围查询,只能用于等值过滤。

2、hash索引不能利用部分索引键查询,对于复合索引,hash索引在计算hash值时,是组合索引键后再一起计算hash值,而不是单独计算hash值。

3、不能避免表扫描。hash索引是索引键通过hash运算之后,将hash值放hash表中,由于不同的索引键存在相同的hash值,所以无法从hash索引中直接完成查询。

69a1ecd413a0d58cac74cb43e9af0bbc.png

61274025538dfd565fc6b5624c1445c2.png

60cd620b56e293f6bfd4493900f898f3.png

 3   平衡二叉树索引?

df642760aaf0c10e4a580476008c1078.png

68628ddc53bfacdf723772a172ecdaff.png

1、树的高度过高,高度越高,查找速度越慢。

2、支持范围查找,但是需要再进行回旋查找

b3216f56f97e9e92efd7b9199578cb7b.png

027ad8c321f90746dcfe9ed5625e1148.png

8c12e848ffbf248ee3bfb7f383a7d8ca.png

 4   B树索引?

bc92b7e41e14110ba6d7c4f6f9cb93f3.png

e1afb85d5881ee1d20eac80028e93ad6.png

B树与二叉树最大的区别在于:它的一个节点可以存储两个值,这就意味着它的树的高度比二叉树更低,查询速度就更快。但是呢,它在进行范围查找的时候仍然存在回旋查找的问题。

c59b29f11a587fe1dccb167a165051dd.png

b879c642af94f39994532b42c25c0ed9.png

3a62f2ebd7b6863e286e5953cb6724fd.png

 5   B+树索引?

928ecc4170e091aafa10d2b5ab6e54d0.png

d55f5ff7a923c254b99858deb874f939.png

B树升级版,与B树相比,新增了叶子节点与非叶子节点关系。所有相邻的叶子节点包含非叶子节点,使用链表进行结合,有一定顺序排序,从而范围查询效率高。比如我们要查询大于5的数据,首先我们定位5的位置,然后直接将5后面的数据全部拿出来即可,因为这是有序链表。

e2b1cfc911931eb1f1af006d77b00db3.png

fb19ab4bec0711f116b60a0e14b4b347.png

cea3d8a6b42345e92c0f270cfbf5f235.png

e002a3731e2fb9a5881de8cc7f344797.png

点个在看你最好看

c32ce3bb0e3e0a66e260b2c51b2984c8.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值