【恋上数据结构】MySQL的索引底层为何使用 B

  • B+树介绍

  • 硬盘介绍

    • 盘片(platter)、盘面(side)、读写磁头(head)
  • 磁道(track)、扇区(sector)

  • 柱面(cylinder)

  • 磁盘块

  • 操作系统读取硬盘数据的过程

  • 磁盘完成IO操作的时间

  • 查看硬盘信息

  • MySQL的索引底层为何使用B+树?

  • B树 与 B*树

数据结构与算法笔记:[恋上数据结构笔记目录](

)

[](

)B+树介绍

========================================================================

B+树 是 B树 的变体,常用于数据库和操作系统的文件系统

  • MySQL数据库的索引就是基于 B+树 实现的

B+树的特点:

  • 分为内部节点非叶子)、叶子节点 2 种节点;

内部节点只存储 key,不存储具体数据

叶子节点存储 key 和具体数据

  • 所有的叶子节点形成一条有序链表;

在这里插入图片描述

  • m 阶 B+树 非根节点的元素数量 x:┌ m/2 ┐ ≤ x ≤ m

关于MySQL发音的官方说明

[https://dev.mysql.com/doc/refman/8.0/en/what-is-mysql.html](

)

The official way to pronounce “MySQL” is “My Ess Que Ell” (not “my sequel”),

but we do not mind if you pronounce it as “my sequel” or in some other localized way.

[](

)硬盘介绍

=======================================================================

市面上常见的硬盘有:

  • 机械硬盘(Hard Disk Drive,HDD)

  • 固态硬盘(Solid State Drive,SSD)

在这里插入图片描述

后面的介绍针对机械硬盘

[](

)盘片(platter)、盘面(side)、读写磁头(head)


硬盘一般由多个盘片组成,每个盘片包含2个盘面,每个盘面有1个对应的读写磁头:盘面、磁头由上到下从0开始编号;

在这里插入图片描述

[](

)磁道(track)、扇区(sector)


盘面中的一圈圈灰色圆环为是一条条的磁道:磁道由外到内从0开始编号;

每条磁道上的一个弧段叫做一个扇区

  • 扇区是磁盘的最小读写单位

  • 一个扇区的大小通常是 512 字节(也有 4096 字节的)

在这里插入图片描述

早期硬盘的扇区细节

每条磁道的扇区数相同

  • 所以外圈扇区的面积会比内圈扇区大

为了更好的读取数据,它们会存放相同的字节数

  • 所以外圈扇区的记录密度要比内圈小,会浪费大量的存储空间

硬盘的存储容量 = 磁头数 * 盘面磁道数 * 磁道扇区数 * 扇区字节数

[](

)柱面(cylinder)


相同编号的磁道形成一个圆柱,称为柱面

  • 磁盘的柱面数与一个盘面的磁道数是相等的

在这里插入图片描述

[](

)磁盘块


磁盘块,在Windows中叫做 簇(cluster),在Linux中叫做 块( block )

  • 相邻的 2n 个扇区组合在一起,形成一个磁盘块

  • 操作系统对磁盘进行管理时,以磁盘块作为最小读写单位

注意

  • 磁盘块是操作系统中的一个虚拟概念

  • 扇区是磁盘上真实存在的物理区域

[](

)操作系统读取硬盘数据的过程

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值