前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >随机读写 vs 顺序读写

随机读写 vs 顺序读写

作者头像
不吃西红柿
发布于 2022-07-29 01:58:22
发布于 2022-07-29 01:58:22
1.1K0
举报
文章被收录于专栏:信息技术智库信息技术智库

磁盘是如何存储数据的?

信息存储在硬盘里,把它拆开也看不见里面有任何东西,只有些盘片。假设,你用显微镜把盘片放大,会看见盘片表面凹凸不平,凸起的地方被磁化,凹的地方是没有被磁化;凸起的地方代表数字1(磁化为1),凹的地方代表数字0。因此硬盘可以以二进制来存储表示文字、图片等信息。

机械盘和固态盘的区别:

机械盘:数据是存储的扇区的,读写是依靠磁头的摆动寻址的。顺序读写主要时间花费在了传输时间,随机读写需要多次寻道和旋转延迟。

固态盘:是由控制单元和固态存储单元(DRAM或FLASH芯片)组成,存储单元负责存储数据,控制单元负责读取、写入数据。

由于固态硬盘没有普通硬盘的机械结构,也不存在机械硬盘的寻道问题。

顺序读写和随机读写对比:

随机读写是相对顺序读写而言的,所谓随机读写,是指可以在任何时候将存取文件的指针指向文件内容的任何位置。一般情况下SAS机械硬盘主要是看顺序读写性能,SSD固态盘主要看随机读写性能。

文件的操作方式

顺序读写:文件指针只能从头移动到尾。

随机读写:文件指针可以随意移动,根据需要。

示例:

假设存在一个文件尺寸为1024个字节的文件,如果按照顺序存取原则的话,我们只能采用类似于FileStream.read()或者FileReader.readLine()的方式来一段一段,或者一行一行地读取。

RandomAccessFile类的核心价值在于RandomAccessFile.seek()方法,通过这个方法,可以任意地指定当前存取文件的指针位置。

随时调用RandomAccessFile类的getFilePionter()方法,获取文件指针当前距离文件起始位置的偏移量。

小结:在日常项目开发中在设计存储时,一定要考虑顺序和随机,优化其性能达到最高。例如,当前大多数数据库使用的都是传统的机械磁盘,因此,整个系统设计要尽可能顺序I/O,避免昂贵的寻道时间和旋转延迟的开销.

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-12-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
终于知道为什么片子太多会导致硬盘变慢了
硬盘的种类主要是SCSI 、IDE 、以及现在流行的SATA等;任何一种硬盘的生产都要一定的标准;随着相应的标准的升级,硬盘生产技术也在升级;比如 SCSI标准已经经历了SCSI-1 、SCSI-2、SCSI-3;其中目前咱们经常在服务器网站看到的 Ultral-160就是基于SCSI-3标准的;IDE 遵循的是ATA标准,而目前流行的SATA,是ATA标准的升级版本;IDE是并口设备,而SATA是串口,SATA的发展目的是替换IDE;
架构师修行之路
2021/06/09
1.6K0
终于知道为什么片子太多会导致硬盘变慢了
深入理解硬盘原理,Mysql索引底层数据结构与算法的来龙去脉(多图)
盘面号:扇区所在的磁头(或盘面) 柱面号:磁道,确定磁头的径向方向。扇区号:在磁道上的位置。也叫块号。确定了数据在盘片圆圈上的位置。
Java宝典
2021/01/14
1K0
深入理解硬盘原理,Mysql索引底层数据结构与算法的来龙去脉(多图)
Linux入门篇 —— Linux 磁盘管理之磁盘理论篇
单个IO大小 | 寻道时间(ms) | 旋转延迟(ms) | c传输时延(ms) | IO服务时间(ms) | IOPS
ruochen
2021/02/08
4K0
Linux入门篇 —— Linux 磁盘管理之磁盘理论篇
云存储技术硬核内幕(33) ——旧制度与大革命
这本手册是《Intel 64 and IA-32 Architectures Software Developer's Manual》,全书共4卷,学习之后可以对x86计算机的工作机制有庖丁解牛一般的深入理解。
用户8289326
2022/09/08
7190
云存储技术硬核内幕(33) ——旧制度与大革命
索引的数据结构及算法原理--为什么使用B-Tree
上文说过,红黑树等数据结构也可以用来实现索引,但是文件系统及数据库系统普遍采用B-/+Tree作为索引结构,这一节将结合计算机组成原理相关知识讨论B-/+Tree作为索引的理论基础。
陈不成i
2021/06/08
3530
支持百万级TPS,Kafka是怎么做到的?答案藏在这10张图里
谈到大数据传输都会想到 Kafka,Kafka 号称大数据的杀手锏,在业界有很多成熟的应用场景并且被主流公司认可。这款为大数据而生的消息中间件,以其百万级TPS的吞吐量名声大噪,迅速成为大数据领域的宠儿,在数据采集、传输、存储的过程中发挥着举足轻重的作用。
用户4172423
2020/11/30
1.2K0
支持百万级TPS,Kafka是怎么做到的?答案藏在这10张图里
六问 Kafka 为啥那么牛!
Kafka架构(下方该是Consumer) Kafka 是一个分布式的基于发布/订阅模式的消息队列,依靠其强悍的吞吐量,Kafka 主要应用于大数据实时处理领域。在数据采集、传输、存储的过程中发挥着举足轻重的作用。
main方法
2021/07/19
5010
六问 Kafka 为啥那么牛!
操作系统核心原理-6.外存管理(上)磁盘基础
  计算机是处理数据的机器,而数据就需要有地方存放。在计算机中,可供数据存放的地方并不太多,除了内存之外,最主要的存储数据的媒介就是磁盘。对于大多数计算机领域的人来说,磁盘通常被看做是一种外部设备。可是,对于现代操作系统来说,磁盘是不可或缺的。虽然早期的操作系统可以基于磁带,但由于操作系统复杂性和性能的不断提升,用磁带作为操作系统的载体已经不合时宜,取而代之的是磁盘。由于操作系统需要存放在磁盘上,且操作系统内的文件系统也是基于磁盘,所以,从某种程度来说,磁盘是操作系统不可分割的一部分,理解磁盘将对理解操作系统的原理具有重要的意义。
Edison Zhou
2018/08/20
8380
操作系统核心原理-6.外存管理(上)磁盘基础
10分钟!搞懂计算机磁盘实现原理
在解释磁盘读写慢之前,我们首先要了解它底层到底是个什么东西,数据到底是如何存储在物理设备上面,是以一个什么的形式存在。所以我们先来了解一下:磁盘究竟是什么,是用什么介质来存储数据的,数据在介质中的形式是什么样的?
林老师带你学编程
2022/09/23
7380
10分钟!搞懂计算机磁盘实现原理
【Java】文件IO
机械硬盘在进行顺序读写时,效率是相对比较高的,因为磁头不用动,盘片高速旋转就好了 但是在随机读写(指哪打哪)的时候,效率就比较低。因为会涉及到磁头移动,就需要克服惯性去做功
椰椰椰耶
2024/10/15
950
【Java】文件IO
MySQL索引底层的数据结构
这里有一篇关于存储引擎的文章:https://blog.csdn.net/qq_41618510/article/details/84680226
Java廖志伟
2021/01/29
6800
【Linux】文件系统
磁盘是一种通过磁性原理进行数据存储和读取的设备,常用于存储操作系统、应用程序以及用户文件等。它通常由多个盘片组成,这些盘片通过旋转来提高数据存取速度
用户11029103
2025/03/04
7640
【Linux】文件系统
干的想喝水,一篇文章带你读懂硬盘工作原理!
一、硬盘的基本结构和工作原理 1956年9月,IBM一个工程小组向世界展示了第一台磁盘存储系统Ramac,1968年,Winch?鄄ester技术(温盘技术)被提出,从此人类开始从顺序存储时代来到随机
网络技术联盟站
2020/07/21
1.5K0
干的想喝水,一篇文章带你读懂硬盘工作原理!
据传,Memblaze将于6月初........!
广告:冬瓜哥新作《大话计算机——计算机系统底层架构原理极限剖析》将于8月份出版。
冬瓜哥
2019/06/10
6350
据传,Memblaze将于6月初........!
谁让存储的未来不再忧伤?我们来细品一二
半导体技术的出现和普及,让存储介质与存储模式发生了翻天覆地的变化,使用二进制记录和存储数据成为整体存储模式的主流。
用户6543014
2020/03/10
5340
谁让存储的未来不再忧伤?我们来细品一二
从机械硬盘和固态硬盘的结构来看IO
“磁盘”这个词,对于程序员来说并不陌生,我们知道它是一种存储介质,主要用来存储数据的,可以说常用的中间件基本上都离不开它,比如我们常用的MySQL数据库、kafka消息引擎,甚至redis缓存都离不开磁盘。
全栈程序员站长
2022/08/26
1.9K0
从机械硬盘和固态硬盘的结构来看IO
【愚公系列】软考中级-软件设计师 006-计算机系统知识(存储系统)
计算机系统中的存储系统指的是用于存储和访问数据的硬件和软件组件。存储系统的主要目的是提供计算机系统运行所需的数据和程序的长期存储和快速访问。
愚公搬代码
2024/01/18
2070
操作系统(1)——学习导论(Ⅰ)
本操作系统专栏,是小程在学操作系统的过程中的第一步,是在学习操作系统的笔记的前提下,加上自己的心得,以及资料的搜集,共同整合而成。小程在学习过程中,难免疏漏,希望各位前辈批评指正。
学编程的小程
2024/05/26
980
操作系统(1)——学习导论(Ⅰ)
固态硬盘和传统硬盘的区别
而机械硬盘采用磁碟结构,数据都是存储在硬碟中,采用机械磁头读写,精密性很高,所以一旦遇到震荡,碰撞就非常容易损坏磁碟、磁头。
简单并不简单
2019/07/05
3.2K0
linux学习之硬盘的存储原理和内部架构
首先,让我们看一下硬盘的发展史: 1956年9月13日,IBM的IBM 350 RAMAC(Random Access Method of Accounting and Control)是现代硬盘的雏形,整个硬盘需要50个直径为24英寸表面涂有磁浆的盘片,它相当于两个冰箱的体积,不过其存储容量只有5MB。 1971年,IBM开始采用一种名叫Merlin的技术生产硬盘,这种技术据称能使硬盘头更好地在盘片上索引。 1973年,IBM 3340问世,主流采用采用红色。这个大家伙每平方英寸存储1.7MB的数据,在当
汤高
2018/01/11
3K0
linux学习之硬盘的存储原理和内部架构
相关推荐
终于知道为什么片子太多会导致硬盘变慢了
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档