Mysql索引(B+tree)的原理

本文详细介绍了B+Tree作为Mysql索引的基础原理,包括其如何通过键值快速定位数据页,以及如何通过二分查找和平衡特性提高查找效率。同时,解释了在插入操作中,B+Tree如何维持平衡,以及可能涉及的页拆分和旋转操作。B+Tree在磁盘存储环境下,有效减少了磁盘I/O,提升了数据库查询性能。
摘要由CSDN通过智能技术生成

Mysql索引(B+tree)的原理

B+tree 索引的原理

引用mysq技术内幕
B+树索引就是传统意义上的索引,这是目前关系型数据库系统中查找最为常用和最为有效的索引。B+树索引的构造类似于二叉树,根据键值(Key Value)快速找到数据。
注意这里的b+tree 不是binary 而是balance 平衡的意思

B+树索引并不能找到一个给定键值的具体行,B+树索引能找到的只是被查找数据行所在的页。然后数据库通过把页读入到内存,再在内存中进行查找,最后得到要查找的数据。
在介绍B+tree之前先要知道这几个概念 。
二分查找 算法
二叉查找树和平衡二叉树

B+tree的插入操作

      如图是一个高度为2的B+tree 

可以看到,不管怎么变化,B+树总是会保持平衡。但是为了保持平衡对于新插入的键值可能需要做大量的拆分页(split)操作。因为B+树结构主要用于磁盘,页的拆分意味着磁盘的操作,所以应该在可能的情况下尽量减少页的拆分操作。因此,B+树同样提供了类似于平衡二叉树的旋转(Rotation)功能。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值