本文是本学渣因为考试需要写的一篇总结,只总结了需要考察的考点,所以可能有的内容引申的不多,请见谅。
索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。是一种以原子粒度访问数据的手段(访问少数行),而不是为了大量数据的访问。
对于B树,我们常常会说是M阶B树,这个M就是阶数,阶数表示了一个节点最多有多少个孩子节点(子树),也就是有多少查找路径。
注意:一个节点的 关键字数 + 1 = 子树数量
(这是因为关键字两两之间夹一个子树,四个关键字就有五个子树)
因此可以根据阶数的定义得出:
上限:
一颗M阶B树最有多有M-1个关键字,M个子树
下限:
对于根节点,最少有1个关键字,2个子树
对于非根节点,最少有M//2个关键字,M//2+1个子树
B树属于多叉树又名平衡多路查找树(查找路径不只两个),需要满足以下几种规则:
以5阶B树为例子,插入需要遵循两个规则:
下面是使用3、8、31、11、23、29、50、28 构建5阶B树的步骤:
先插入 3、8、31、11:
然后再插入23、29,由于在上一步进行了拆分,所以得到
再插入50、28,再次拆分
此处删除同样需要遵循三个规则:
例如从B树中删除28
这就是需要进行节点合并,先看子节点,没有子节点,就从父节点取。此时父节点需要合并,就从别的子节点取一个值。
B+树是B树的一个升级版,相对于B树来说B+树更充分的利用了节点的空间,让查询速度更加稳定,其速度完全接近于二分法查找,每次查找次数都一样
示意图如下:
B树和B+树都是多路查找树,目的都是为了解决多次访问磁盘,IO耗时太长的问题
什么是时候使用B树索引:
仅当要通过索引访问表中很少一部分行,用于提高单个数据的查找效率。
什么时候使用B+树索引:
进行范围查找,排序查找,分组查找以及去重查找的时候可以用。
(因为 B+ 树索引的所有数据均存储在叶子节点,而且数据是按照顺序排列的)
二者什么时候不能用:
以主键作为 B+ 树索引的键值而构建的 B+ 树索引,我们称之为聚集索引
以主键以外的列值作为键值构建的 B+ 树索引,我们称之为非聚集索引
的区别在于非聚集索引的叶子节点不存储表中的数据,而是存储该列对应的主键,想要查找数据我们还需要根据主键再去聚集索引中进行查找,这个再根据聚集索引查找数据的过程,我们称为回表。
也就是说最终都要进行聚集索引
W3C 的标准化程序分为 7 个不同的步骤。 W3C 的标准化程序分为 7 个不同的步骤。...
为什么这么设计(Why's THE Design)是一系列关于计算机领域中程序设计决策的文...
若该文为原创文章转载请注明原文出处 本文章博客地址 https://blog.csdn.net/qq2...
微信小程序自定义swiper 滑块视图容器。其中只可放置swiper-item组件,否则会导...
## 标题java的简单了解 1995年的网页简单而粗糙缺乏互动性。 图像界面的程序appl...
? OpenGL ES/SDL渲染FFmpeg VR分屏之OpenGL-OpenGL ES来播放视频.MediaPlayerGLS...
提示文章写完后目录可以自动生成如何生成可参考右边的帮助文档 前言 本文是笔者...
我有以下几行: d:\Projects\qqq\Development\qqq.MySol1.sln d:\Projects\qqq\q...
1.当你失去一切时,你就会发现什么是你唯一需要的。 2.你来,信你不会走;你走...
JS制作网页–点击图片换背景,供大家参考,具体内容如下 网页中有四个图片,点击...