1.基本概念

2.细节

3.顺序读写和随机读写


1.基本概念

(1)磁盘组合
盘片=2盘面
主轴
磁道
柱面
扇区
间隙
块:对于理解数据库系统特别重要的是磁盘被划分为磁盘块(或就称为块,或者像操作系统称为页),

每块的大小是4-64kB。整个块被从一个称为缓冲区的连续内存区域中移进移出。

块是在磁盘与主存之间所传输数据的逻辑单元,由一个或多个扇区所组成。
(2)磁头组合
磁头臂
磁头
磁头组合:一个磁盘的所有磁头在一起叫做磁头组合,它们位于相同的柱面上。


2.细节

(1)磁道、扇区、读取速度的关系
一个盘面,从内到外有很多磁道,同一个磁道被划分为若干个扇区。
其中扇区之间有间隙隔开,间隙占磁道的10%空间。
同一个盘面上磁道上的数据密度相同,但是外侧磁道长度大于内侧磁道。
每一个扇区上的数据量是相同的(例如512字节),所以外侧磁道扇区数大于内侧磁道。
由于盘面各个磁道角速度相同,但是线速度不同,所以外侧磁道理论上来说读取速度快于内侧磁道。
当然如果内外侧磁道采用不同密度,可以实现内外磁道读取速度相同,但是有两个缺点
①制造工艺更加复杂
②浪费外侧存储空间
当然为了实现特定的目的,需要内外磁道一致的读取速度,也有可能这样做。


(2)磁道、磁头、柱面
①磁头并不会与磁道接触,而是靠地很近,可以感应盘面的磁方向,改变磁方向。
②同一磁盘的所有磁头位于不同的盘面,但是相同的磁道,这些相同的磁道共同构成一个曲面,称为柱面。


(3)磁盘读取时间
①寻道时间,表示磁头在不同磁道之间移动的时间。
②旋转延迟,表示在磁道找到时,中轴带动盘面旋转到合适的扇区开头处。
③传输时间,表示盘面继续转动,实际读取数据的时间。
7200转/min,旋转一周需要8.33ms
寻道约10ms
所以整个磁盘读取时间在一个磁道上是10ms级的。


3.顺序读写和随机读写对于机械硬盘来说为什么性能差异巨大?

顺序读写=读取一个大文件
随机读写=读取多个小文件
顺序读写比随机读写快的原因
①顺序读写,主要时间花费在了传输时间,而这个时间两种读写可以认为是一样的。
随机读写,需要多次寻道和旋转延迟。而这个时间可能是传输时间的许多倍。
②顺序读写,磁盘会预读,预读即在读取的起始地址连续读取多个页面
(现在不需要的页面也读取了,这样以后用时就不用再读取,当一个页面用到时,大多数情况下,它周围的页面也会被用到)  
而随机读写,因为数据没有在一起,将预读浪费掉了。
③另一个原因是文件系统的overhead。
读写一个文件之前,得一层层目录找到这个文件,以及做一堆属性、权限之类的检查。
写新文件时还要加上寻找磁盘可用空间的耗时。
对于小文件,这些时间消耗的占比就非常大了。