MySQL顺序读写和随机读写磁盘_随机读写与顺序读写的深入理解
随机读写与顺序读写的深入理解
分类:数据恢复常见问题|最后更新:2018年11月6日
关于磁盘的读写性能曾经一直是我头疼的地方,涉及研发或者测试时不清楚过程导致结果不尽人意。一起认识下关于磁盘的读写原理和顺序读写,随机读写。
首先磁盘是如何存储数据的?
信息存储在硬盘里,把它拆开也看不见里面有任何东西,只有些盘片。假设,你用显微镜把盘片放大,会看见盘片表面凹凸不平,凸起的地方被磁化,凹的地方是没有被磁化;凸起的地方代表数字1(磁化为1),凹的地方代表数字0。因此硬盘可以以二进制来存储表示文字、图片等信息。
机械盘和固态盘的区别:
机械盘:数据是存储的扇区的,读写是依靠磁头的摆动寻址的。顺序读写主要时间花费在了传输时间,随机读写需要多次寻道和旋转延迟。
固态盘:是由控制单元和固态存储单元(DRAM或FLASH芯片)组成,存储单元负责存储数据,控制单元负责读取、写入数据。
由于固态硬盘没有普通硬盘的机械结构,也不存在机械硬盘的寻道问题。
(硬盘、U盘、光盘、SD卡等存储设备的数据发生了丢失,使用
顺序读写和随机读写对比:
随机读写是相对顺序读写而言的,所谓随机读写,是指可以在任何时候将存取文件的指针指向文件内容的任何位置。一般情况下SAS机械硬盘主要是看顺序读写性能,SSD固态盘主要看随机读写性能。
文件的操作方式:
顺序读写:文件指针只能从头移动到尾。
随机读写:文件指针可以随意移动,根据需要。
随机示例:
假设存在一个文件尺寸为1024个字节的文件,如果按照顺序存取原则的话,我们只能采用类似于FileStream.read()或者FileReader.readLine()的方式来一段一段,或者一行一行地读取。
RandomAccessFile类的核心价值在于RandomAccessFile.seek()方法,通过这个方法,可以任意地指定当前存取文件的指针位置。
随时调用RandomAccessFile类的getFilePionter()方法,获取文件指针当前距离文件起始位置的偏移量。
小结:在日常项目开发中在设计存储时,一定要考虑顺序和随机,优化其性能达到最高。例如,当前大多数数据库使用的都是传统的机械磁盘,因此,整个系统设计要尽可能顺序I/O,避免昂贵的寻道时间和旋转延迟的开销.
(迷你兔数据恢复minitool具有“五大功能模块,恢复效率高,安全性有保障。)
MySQL顺序读写和随机读写磁盘_随机读写与顺序读写的深入理解相关推荐
- python随机森林库_随机森林算法入门(python)
目录 1 什么是随机森林 1.1 集成学习 1.2 随机决策树 1.3 随机森林 1.4 投票 2 为什么要用它 3 使用方法 3.1 变量选择 3.2 分类 3.3 回归 4 一个简单的Python ...
- c++数据结构中 顺序队列的队首队尾_数据结构 3.3 顺序队
一些废话 光有理论是远远不够的,只有自己亲自敲过代码,做过编程题才能说自己学过数据结构.但被PTA的ds习题折磨了几天之后,我领悟到一个道理: 学习理论时可以用C语言造轮子深入理解. 上机做题时使用C ...
- 随机地址生成器_随机连接神经网络性能超过人工设计!何恺明等人发布新研究...
选自arxiv 作者:Saining Xie.Alexander Kirillov.Ross Girshick.Kaiming He 机器之心编译 随机连接的神经网络性能居然比人工设计的网络(ResN ...
- matlab 随机森林算法_随机森林算法
随机森林是一种灵活,易于使用的机器学习算法,即使没有超参数调整,也能在大多数情况下产生出色的结果.它也是最常用的算法之一,因为它简单,并且可以用于分类和回归任务.在这篇文章中,您将学习随机森林算法如何 ...
- gbdt 算法比随机森林容易_随机森林与GBDT
Bagging策略 1.总样本数量是n个,从样本中重采样(有放回的)选出n个样本 ,会有约33.2%的样本不会被抽到 2.在所有属性上对这n个样本建立分类器(比如决策树,svm,lr) 3.重复步骤1 ...
- java map 随机取值_随机获取一个集合(List, Set)中的元素,随机获取一个Map中的key或value...
利用Java提供的Random类.从List或Set中随机取出一个元素,从Map中随机获取一个key或value. 因为Set没有提供get(int index)方法,仅仅能先获取一个随机数后.利用一 ...
- 计算机随机数字excel,excel随机生成数字_随机不随意
前几天,我正在校园里漫步.远远地,一名学生向我打招呼.我朝他笑了笑,脑子里却怎么也搜索不到他的名字.自从高二年级考完信息技术学业水平测试,信息技术课就结束了,好多学生的名字也渐渐淡忘了. 直到学生走到 ...
- java生成随机十位数_随机10位字符串生成
小于11位的小写字母以及数字随机码生成方法如下 方法一 奇妙的写法 Math.random().toString(36) //0.apnsudpxq0 //10位数字符串 Math.random(). ...
- java中的随机生成算法_随机生成算法的java代码太复杂了
public static Integer[] generateRandomArray(int n, int rangeL, int rangeR) { assert rangeL <= ran ...
最新文章
- 一个软件公司需要多少前端_制作一个小程序商城需要多少钱?开发小程序公司哪家强?...
- 关于windows内存泄露思考
- 科普:TLS、SSL、HTTPS以及证书(转)
- C++ 析构函数与内存池
- visual-studio – 使用TFS 2010防止在Visual Studio 2012上签入pdb文件
- windows mysql导入sql文件
- 【入门篇】黑盒测试基础
- jQuery 效果函数
- 文献阅读 | 利用体细胞的mtDNA的突变追踪细胞的分化命运
- Linux必学的60个命令(文字整理版)
- 基于java的oa协同办公系统_基于JAVA的OA系统的制作毕业设计论文
- goahead(嵌入式) webservice (3.3.0)运行goforms
- 12海里、24海里、200海里的意义及名称
- 【连载】【FPGA黑金开发板】Verilog HDL那些事儿--PS2解码(九)
- 软考中级——计算机网络与信息安全基础概要
- 算法:初探12306售票算法。
- 七、HTMLTestRunner生成测试报告
- ios文件扩展名_安卓JY Share | 还在为担心文件上传成为 base.apk,这个应用帮你解决...
- 互联网医院智慧医院系统
- 【瑞吉外卖】day08:短信发送、手机验证码登录
热门文章
- react项目中引入的组件在src外从而报错
- pyhton——爬小说网站(顶点最强国防生)
- Ubuntu中禁用触摸板
- c语言共阴极数码管数字6,用51单片机C语言编写程序实现6位共阴极数码管循环显示0123456789ABCDEF,六个数码管是连续不同的六个数?...
- 你所不知道的测试经验分享之安卓UI控件定位!
- [翻译]Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift
- 110.Balanced Binary Tree
- 详解:化工厂人员定位方案与双重预防机制建设
- 自己写的一点福利代码(四)
- 《Java程序设计》实验指导——项目3 类与对象