什么是Mysql索引 Mysql索引的定义和作用(2)
什么是Mysql索引

2.1. 红黑树的特质
- 性质1:节点要么是红色,要么是黑色
- 性质2:根节点是黑色
- 性质3:红黑树中红色节点的子节点都是黑色
- 性质4:叶子节点都是黑色
- 性质5:从任一节点到叶子节点的所有路径都包含相同数目的黑色节点
在添加或删除节点的时候,如果不符合这些性质会发生旋转,以达到所有的性质
红黑树:保证平衡
虽然解决单向列表缺点,但是还是存在缺点:
如果数据量比较大,层级就较深,检索效率就慢
3. B树(B-Tree)
B-Tree:B树是一种多叉路衡查找树,相对于二叉树,B树每个节点可以有多个分支,即多叉。
B树(B-Tree)具有一下特点:
- 1.多叉树结构:B-Tree是一种多叉树,每个内部节点可以有多个子节点,使得B-Tree能够有效地存储和管理大量数据。
- 2.平衡性:B-Tree具有平衡性,这意味着从根节点到叶子节点的任何路径的长度几乎相等。这确保了在平均情况下,对树的操作(插入、删除、查找)具有稳定的性能,不会出现严重的性能退化。
- 3.按序存储:B-Tree内的节点和数据通常按照键的顺序存储,这有助于范围查询和排序操作的高效执行。
- 4.分层结构:B-Tree具有分层结构,从根节点到叶子节点有多个级别。
- 5.高度平衡:B-Tree的高度通常是相对较低,这是因为它的平衡性和多叉性质。高度平衡有助于减少查找操作所需的磁盘访问。

对数据库而言,所有的数据都将会保存到磁盘上,磁盘 I/O 的效率又比较低,特别是在随机磁盘 I/O 的情况下效率更低。
B树(B-Tree),高度决定了磁盘 I/O 的次数,磁盘 I/O 次数越少,对于性能的提升就越大,这也是为什么采用 B 树作为索引存储结构的原因
4. B+树(B+Tree)
B+Tree是在BTree基础上的一种优化,使其更适合实现外存储索引结构,MySQL 的 InnoDB 存储引擎就是用B+Tree实现其索引结构
相比较于 B-Tree结构来说,B+Tree做了两个方面的优化,如图所示:

可以看到两部分:
- 1.蓝色框部分,索引部分,是非叶子结点,仅仅起到索引数据的作用,不存储数据。
- 2.绿色框部分,数据存储部分,是叶子结点,叶子节点中要存储具体的数据。
- 3.MySQL索引数据结构对经典的B+Tree进行了优化。在原B+Tree的基础上,增加一个指向相邻叶子节点的链表指针,就形成了带有顺序指针的B+Tree,提高区间访问的性能,利于排序
B树与B+树对比
- 磁盘读写代价B+树更低
- 查询效率B+树更加稳定
- B+树便于扫库和区间查询
5. Mysql索引面试题
面试官:了解过索引吗?(什么是索引)
候选人:
索引在项目中还是比较常见的,帮助MySQL高效获取数据的数据结构,主要是用来提高数据检索的效率,降低数据库的IO成本,同时通过索引列对数据进行排序,降低数据排序的成本,也能降低了CPU的消耗
面试官:索引的底层数据结构了解过嘛 ?
候选人:
MySQL的默认的存储引擎InnoDB采用的B+树的数据结构来存储索引,选择B+树的主要的原因是:
第一:阶数更多,路径更短,搜索效率高
第二:磁盘读写代价B+树更低,非叶子节点只存储指针,叶子阶段存储数据,而B-Tree,无论是叶子节点还是非叶子节点,都会保存数据,这样导致一页中存储键值减少,指针跟着减少,相对于B+树同样保存大量数据,只能增加树的高度,导致性能降低
第三:B+树便于扫库和区间查询,叶子节点是一个双向链表
面试官:B树和B+树的区别是什么呢?
候选人:
第一:在B树中,非叶子节点和叶子节点都会存放数据,而B+树的所有的数据都会出现在叶子节点,在查询的时候,B+树查找效率更加稳定
第二:在进行范围查询的时候,B+树效率更高,因为B+树都在叶子节点存储,并且叶子节点是一个双向链表
以上就是IT袋网带来的什么是Mysql索引的全面介绍了,希望给IT袋网网的网友们带来一些相关知识。
相关阅读
-
dw制作网站教程 dreamweaver新手教程分享
文章导读:dw制作网站教程和dreamweaver新手教程分享的教程内容,下面小编为您详细解答 使用Dreamweaver制作网页时候,网页的框架往往在某些方面有固定的格式,像是导航栏、banner条,如果每制
-
什么是网络附加存储 NAS? 网络附加存储的适用场景有哪些
一篇很详细的教程是关于什么是网络附加存储方面的介绍,一起来了解了解吧。 网络附加存储(Network-Attached Storage,简称NAS)是一种基于网络的存储解决方案,允许多个设备通过网络共享存储
-
轻松升级存储格式:FAT32转NTFS命令详解与操作指南
关于轻松升级存储格式的教程内容,如有不对的地方欢迎指正! 在Windows操作系统中,FAT32和NTFS是两种常见的文件系统。 NTFS相比于FAT32具有更多的功能和更好的性能,因此,很多用户可能会想
-
企业网站建设原则是什么 关于企业网站设计要求
IT袋网小编为你介绍企业网站建设原则是什么和关于企业网站设计要求的相关话题,接下来小编为网友介绍。 在互联网时代,网站已经成为企业的标准配置。有些网站甚至有多个网站,包括企


