当前位置: 首页 > news >正文

深入理解MySQL_3 I/O成本

一、IO成本

1 执行SQL的成本:包括I/O成本和CPU成本

I/O成本:InnoDB和MyISAM存储引擎都是将数据存储在磁盘上。当查询表中的记录时,需要先将数据加载到内存中,然后进行操作。这个从磁盘到内存的数据加载过程损耗的时间就是I/O成本。

CPU成本:读取记录以及检测记录是否满足对应的搜索条件、对结果集进行排序等这些操作所消耗的时间称之为CPU成本。

2、磁盘的结构

(1)盘片、盘面和磁头

硬盘中一般会有多个【盘片】组成,每个盘片包含【两个面】即盘面,每个盘面都对应的有一个【读/写磁头】,一个盘片有两个盘面所以对应两个【读/写磁头】。

 

(2)磁道和扇区

盘面中一圈圈灰色同心圆为一条条磁道。

从圆心向外画直线,可以将磁道划分为若干个弧段,每个磁道上一个弧段被称之为一个扇区。

扇区是磁盘的最小组成单元,通常是512字节。

 

(3)柱面

硬盘通常由重叠的一组盘片构成,每个盘面都被划分为数目相等的磁道,并从外缘的“0”开始编号,具有相同编号的磁道形成一个圆柱,称之为磁盘的柱面。

 

2、磁盘容量计算

存储容量 = 磁头数 × 磁道(柱面)数 × 每道扇区数 × 每扇区字节数

 

3、磁盘读取响应时间

读写一次磁盘信息所需的时间可分解为:寻道时间、延迟时间、传输时间。为提高磁盘传输效率,软件程序应着重考虑减少寻道时间和延迟时间。

【重点】寻道时间:磁头从开始移动到数据所在磁道所需要的时间,寻道时间越短,I/O操作越快

【重点】旋转延迟:盘片旋转将请求数据从所在扇区移至读写磁头下方所需要的时间,旋转延迟取决于磁盘转速。

传输时间:完成传输所请求的数据所需要的时间。

 

4、交换单位

【块】是操作系统中最小的逻辑存储单位,他是虚拟出来的一个单位。操作系统与磁盘打交道的最小单位是磁盘块。

存在磁盘块的原因:

(1)读取方便:由于扇区的容量比较小,数目众多,在寻址时比较困难,所以操作系统就将相邻的扇区组合在一起,形成一个块,再对块进行整体的操作。

(2)分离对底层的依赖:操作系统忽略对底层物理存储结构的设计。通过虚拟出来磁盘块的概念,在系统中认为块是最小的单位。

 

5、扇区、块/簇、page的关系:

扇区: 硬盘的最小读写单元

块/簇: 操作系统针对硬盘的最小读写单元

page: 内存与操作系统之间操作的最小单元

扇区 <= 块/簇 <= page

 

5、局部性原理与磁盘预读

磁盘往往不是严格的【按需读取】,而是每次都会预读,即使只需要一个字节,磁盘也会从这个位置开始,顺序向后读取一定长度的数据放入内存。这样做的理论依据是计算机科学中著名的局部性原理。

局部性原理:当一个数据被用到时,其附近的数据也通常会马上被使用,程序运行期间所需要的数据通常比较集中。

http://www.dtcms.com/a/572891.html

相关文章:

  • 哪个网站可以做验证码兼职gom传奇网站建设
  • 做网站一年能赚多少钱没有备案的网站怎么挂广告
  • vscode-ssh无法进入docker问题解决
  • iOS 应用网络权限弹窗的问题及解决方案
  • 使用 FastAPI 异步动态读取 Nacos 配置
  • 怀远做网站电话网站建设期末作业要求
  • Arbess零基础学习 - 使用Arbess+GitLab实现PHP项目构建/主机部署
  • CS144 Lab:Lab0
  • 总结做产品开发的一些通病
  • 稳定币市场格局重构:分发权正在成为新的护城河!
  • 【C语言】深入理解指针(二)
  • C++:模板的灵魂——从编译期推导到元编程的演化史
  • 开发网站用得最多的是什么语言电子商务网站开发课程
  • 顺德中小企业网站建设网站销户说明
  • Python3 面向对象编程详解
  • 【 SLF4J + Logback】日志使用方法+技巧介绍+项目示例(SpringBoot)
  • 重构可见性:IT资产管理的下一次觉醒
  • mermaid install for free docker
  • 0 基础学前端:100 天拿 offer 实战课(第 6 天)—— JavaScript 入门:给网页加 “动态交互” 的 3 个核心案例
  • 宝塔nginx http转https代理
  • 建设企业网站登录901如何修改wordpress主题模板
  • 系统架构设计师论文-论软件体系结构的演化
  • 【大模型学习】第一章:自然语言处理(NLP)核心概念
  • 软件测试之压力测试知识总结
  • 高级系统架构师笔记——系统架构设计基础知识(3)软件架构风格
  • 备案网站负责人必须为法人吗网站建设需要客户提供什么内容
  • QML学习笔记(五十一)QML与C++交互:数据转换——基本数据类型
  • 机载电脑部署安装px4环境详细教程
  • Android APP 的压力测试与优化
  • 网站建设需要多久seo综合查询怎么关闭