代码编织梦想

回顾我们学习的线性和课扩展哈希 他们都只能进行等值操作 但是不能进行区间操作 为了进行区间操作和关系的比较和速度考虑 引入数据结构B+树

序言:磁盘存储

1. mysql面试题-深入理解B+树原理_哔哩哔哩_bilibili

信息是存取在磁盘块中的每个 磁盘最小的存取单位是512KB  要定位磁盘某一个区域 需要通过是确定扇区和磁道 虽然绿色的位置比 外圈的短但是存储信息的容量是相等的。

 以这个为例 磁盘大概需要500个扇区。

通过不断建立索引之后减少了IO的次数

结构特点

 

B+树的数据结构

等值查找 & 区间查找

区间查询 先利用下节进行一次查找然后沿着根节点指向的链表进行区间查询

B树的插入

引入middel  key这个概念

 插入理想的情况:

 插入不理想的情况:

以插入15为例 首先先找到15需要插的位置 此时发现 13 15 17 19已经装不下了, 此时将13 15 17两段  生成一个middel key 17 23始终指向 block 17 19

 删除索引项

顺利的话 他就是半满的情况很简单

不顺利 需要使用节点合并策略;

 可以向兄弟借指针

 

树可视化工具 

B+ Tree Visualization (usfca.edu)

压缩存储

前缀压缩

 后缀截断: 

只需要前几个的字母就可以了 不需要后面的字母所以后边的字母直接截断。

批量加载

 当分裂的节点不够的时候, 需要进行拆解

如图所示进行结果的分裂

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_62260432/article/details/130838861

数据库索引的数据结构——b-树/b+树_阿文施瓦辛格的博客-爱代码爱编程

一、 常见的查询算法 我们知道,数据库查询是数据库的最主要功能之一。我们都希望查询数据的速度能尽可能的快,因此数据库系统的设计者会从查询算法的角度进行优化。那么有哪些查询算法可以使查询速度变得更快呢? 1. 顺序查找

mysql数据库索引底层原理---------B+树(内附原理图)-爱代码爱编程

mysql索引底层原理 #B+树的原理 这里主要介绍的是B+树中,两种存储引擎MyISAM和InnoDB的区别。 1.什么是B+树 1.首先插入第一个元素为4,再插入第二个元素5,因为树形结构的特性,5大于4,所以5是存储在右边的。 2.接着再插入第三个元素3,因为3小于4,所以存储在左边,当插入第四个元素6的时候,会进行向上分裂。下面会提到为什

MySQL索引-B+树(讲得通透)-爱代码爱编程

    该文章摘自“安静的boy”发表在微信公众号“Hollis”上的原创文章:再有人问你为什么MySQL用B+树做索引,就把这篇文章发给她     在这里我也做了一些个人的总结和补充,希望大家一起共同努力、共同进步,加油! 目录 二叉查找树 平衡二叉树 B树 B+树 聚集索引 VS 非聚集索引 利用聚集索引和非聚集索引查找数据