随机存取、顺序存取、随机存储和顺序存储的区别
- 顺序存取(Sequential Access):存储器的数据以记录的形式进行组织。对数据的访问必须按特定的线性顺序进行。在存取第N个数据时,必须先访问前(N-1)个数据。SAM(磁带存储器)采用顺序存取的方式。
- 直接存取(Direct Access):与顺序存取相似,直接存取也使用一个共享的读写装置对所有的数据进行访问。但是,每个数据块都拥有唯一的地址标识,读写装置可以直接移动到目的数据块所在位置进行访问。存取时间也是可变的(数据块位置,大小不确定)。DAM(机械硬盘HDD、光盘)采用直接存取的方式。
- 存取时间 = 寻道时间(磁头移动到目标磁道) + 旋转延迟时间(盘片旋转到目标扇区) + 数据传输时间。
- 在项目中,设计数据库索引、优化文件存储结构,本质上就是在减少硬盘的“寻道”和“旋转”开销,这正是针对直接存取特性的优化。
- 随机存取(Random Access):存储器的每一个可寻址单元都具有自己唯一的地址和读写装置,系统可以在相同的时间内对任意一个存储单元的数据进行访问,而与先前的访问序列无关。RAM、CPU Cache、主存、固态硬盘SSD采用随机存取的方式。
- 直接且等时访问:书架上的每本书(每个存储单元)都有唯一且固定的门牌号(物理地址)。无论你想拿第1本还是第1000本书,你只需要知道它的编号,伸手(通过地址译码电路)拿到它的时间基本相同。
- 访问与位置无关:存取任何单元数据的时间与数据所在的位置、以及之前访问了哪个单元无关。
- 相联存取:相联存取也是一种随机存取的形式,但是选择某一单元进行读写是取决于其内容而不是其地址。与普通的随机存取方式一样,每个单元都有自己的读写装置,读写时间也是一个常数。使用相联存取方式,可以对所有的存储单元的特定位进行比较,选择符合条件的单元进行访问。按内容访问的存储器。其工作原理就是把数据或数据的某一部分作为关键字,按顺序写入信息,读出时并行地将该关键字与存储器中的每一单元进行比较,找出存储器中所有与关键字相同的数据字,特别适合于信息的检索和更新。为了提高地址映射的速度,Cache 采取相联存取的方式。 Summary:顺序存取和直接存取这两者的区别就是数据与数据块,随机存取就是链式,索引。
- 随机存取 = 任意位置,速度一样快。
- 直接存取 = 能直接找到位置,但有的快有的慢。
- 顺序存取 = 必须从头找,不能跳。
想象你在听一盘磁带(顺序存取):
- 想听第5首歌,必须快进/倒带,经过第1、2、3、4首。时间与位置有关。 想象你有一张CD(直接存取):
- 想听第5首歌,可以直接跳过去,但光头仍需移动到指定位置(需要寻道时间)。时间基本固定,但有微小差异。 想象你的手机内存(随机存取):
- 打开任何App、任何数据,速度几乎完全一样。真正的时间恒定。
直接存取和随机存取举例:

数据结构:
