【如此简单!数据库入门系列】之效率基石 -- 磁盘空间管理

文章目录

  • 1 前言
  • 2 磁盘空间管理
  • 3 磁盘空间管理的实现
  • 4 存储对象关系
  • 5 总结
  • 6 系列文章


1 前言

如何将表中的记录存储在物理磁盘上呢?
在这里插入图片描述

  1. 概念模式中,记录(Record)表示表中的一行数据,由多个列(字段或者属性)构成
  2. 物理模式中
    • 记录以字节为单位(记录的字节表示)存储在内存中
    • 必要时(例如内存空间不足),被进一步存储在磁盘中(通常称为刷盘)

如何将内存中的记录保存在磁盘中?以什么方式保存?

这就是磁盘空间管理要解决的问题。


2 磁盘空间管理

在这里插入图片描述
磁盘空间管理是数据库读写效率的基石。

磁盘空间管理的目标:

  • 将内存中的Page映射到磁盘的位置
  • 将Page从磁盘加载到内存
  • 将Page保存回磁盘并确保写入
  • 为上层提供Page相关的服务,例如Page的创建、读取、写入和注销

Page是什么意思?

Page是内存中一块连续的区域,用于保存记录。内存中的数据写入磁盘,或者从磁盘读取,并不是以记录为单位进行的,而是以Page为单位。

为什么要把记录组织成Page再写入磁盘中?

还记得磁盘的工作原理吗?为了优化磁盘I/O性能,要尽可能将数据写入一个连续的区域内(称为块或Block)。内存中的Page就是为了对应磁盘中的Block。

通常情况下,Page和Block是等价的,都是指一块儿连续的区域,是磁盘读写的基本单位。通常,在内存中常用Page,而在磁盘中常用Block。

3 磁盘空间管理的实现

整体来说,存在两种实现方法:

  1. 直接依赖于物理设备
    • 在深入理解物理设备特性基础上,可以做到性能最好
    • 但是过于依赖物理设备细节,无法实现可移植性
  2. 基于文件系统(filesystem)
    • 将数据以某种方式组织在一起并保存在文件(File)中
    • 文件系统善于对文件进行顺序访问
    • 数据库会产生多个数据文件,这些文件可能存储在多个物理磁盘上
      在这里插入图片描述

显然,基于文件系统的方式更好。理论上,如果直接基于物理设备去实现,相当于实现了一套定制化的文件系统。

文件是文件系统提供的抽象对象。一个文件由多个Page/Block组成。

4 存储对象关系

Table、Page、和File都是存储记录的载体。它们之间是什么关系?

在这里插入图片描述

  • Table:记录的逻辑存储载体,处于概念模式,属于关系模型中的概念
  • Page:记录的字节表示在内存中的存储载体,是文件读写的基本单位,处于物理模式
  • File:由多个Page/Block组成的物理文件,处于物理模式,通常一个Table对应一个数据文件

5 总结

关于文章开头的问题:

如何将内存中的记录保存在磁盘中?以什么方式保存?

目前我们只讨论了第一个问题:

  • 在物理模式的最下层,实现了磁盘空间管理模块
  • 它负责将内存中的Page写入文件系统,并从文件系统读取Page
  • 它对上提供了Page相关服务,并隐藏了文件读写的实现细节

在下一篇文章中,我们继续讨论第二个问题:如何在Page中组织记录,以及如何在File中组织Page。


6 系列文章

更多系列文章,请参考:【如此简单!数据库入门系列】之思想地图 – 系列目录


如果喜欢这篇文章,请不要忘记关注、点赞和收藏哦!
您的鼓励将是我创作的最大动力!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/598690.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Web 3.0时代:软文发稿对企业品牌的影响

Web 3.0的到来,标志着我们已经进入了一个全新的互联网时代。在这个新时代中,信息的生成和传播有了更多的可能性和更广的空间。作为企业品牌宣传的重要手段之一的软文发稿,在Web 3.0时代将会面临什么样的挑战和机遇? 首先&#xf…

YouTube广告全教学:形式、投放步骤与技巧(2024年更新)

YouTube作为全球最大的视频分享和观看平台吸引了大量的观众,这一平台以其无与伦比的用户参与度和覆盖范围,重新定义了人们获取与分享知识的方式,同时也为企业开辟了一片前所未有的营销蓝海。 据统计,全球观众平均每天观看 YouTub…

2024深圳杯数学建模C题完整思路+配套解题代码+半成品参考论文持续更新

所有资料持续更新,最晚我们将于5.9号更新参考论文。 【无水印word】2024深圳杯A题成品论文23页mtlab(python)双版本代码https://www.jdmm.cc/file/27105652024深圳杯数学建模C题完整思路配套解题代码半成品参考论文持续更新https://www.jdmm.cc/file/2710545 深圳杯…

Postman接口关联实战解析

在使用postman做接口测试时,有时候后面的接口需要获取前面接口的某一个返回值做为请求参数,这时就可以使用关联。 如从A接口提取出a字段的值,供B接口的b字段使用。 一个接口的返回报文如下: {"retCode": "0&quo…

了解外汇震荡类货币对特征与交易策略

外汇市场是全球最大的金融市场,每天的交易量超过6万亿美元。在这个市场上,货币对之间的价格变动反映了全球经济和政治动态。外汇货币对通常被分为三类:主要货币对、次要货币对和外来货币对。而在交易这些货币对时,市场表现通常分为…

ubuntu下pyinstaller打包多个.py文件

参考链接: https://blog.csdn.net/CholenMine/article/details/80964272 https://blog.csdn.net/BXD1314/article/details/125226289 前言 要把python项目打包成可执行程序运行,看了很多帖子,大多数博主都采用pyinstall 打包,但…

最好用的长线预警指标Lon 一键导入QMT

长线指标(LON)是一种加权的量价指标,其作用在于测量近期资金动向。属于中长线趋势类指标。 LON长线指标表现形式类似平滑异同移动平均线(MACD)和三重指数平滑移动平均指标(TRIX)等趋势型指标,但…

uniapp video 层级覆盖

层级覆盖 cover-view组件 我这里做了个判断 监听全屏时隐藏按钮 根据项目需求自行更改

Sermant在异地多活场景下的实践

Sermant社区在1.3.0和1.4.0版本相继推出了消息队列禁止消费插件和数据库禁写插件,分别用于解决异地多活场景下的故障切流和保护数据一致性问题。本文将对Sermant在异地多活场景下的实践进行剖析。 一、异地多活 1.1 什么是异地多活 对于一个软件系统,…

基于GEE遥感影像处理和长时序土地分类以及生物量估算分析

简介 Google Earth Engine云平台是目前全球范围内测绘领域内使用最为广泛的遥感云计算平台,其凭借强大的数据存储和云计算能力,极大了提高了全球科研工作者的科研产出,每年借助GEE平台发布的各类期刊论文超1000篇,在海量遥感数据的…

人脸美型SDK解决方案,适用于各类应用场景

视频内容已经成为企业宣传、产品展示、互动直播等多个领域的核心载体。而在这些场景中,高质量的人脸美型效果不仅能够提升用户体验,更能为品牌加分。美摄科技凭借深厚的技术积累和行业洞察,推出了全新的人脸美型SDK解决方案,为企业…

Spring IoCDI(3)—DI详解

目录 一、属性注入 二、构造方法注入 小结:构造函数的注入 三、Setter注入 四、三种注入的优缺点分析(面试题) 1、属性注入 优点: 缺点: 2、构造方法注入(Spring4.X推荐) 优点&#x…

JetBrains DataGrip v2024.1 激活版 (多引擎数据库管理开发)

JetBrains系列软件安装目录 一、JetBrains IntelliJ IDEA v2024.1 安装教程 (Java集成开发IDE) 二、JetBrains WebStorm v2024.1 激活版 (JavaScript集成开发IDE) 三、JetBrains PhpStorm v2024.1 安装教程 (PHP集成开发IDE) 四、JetBrains PyCharm Pro v2024.1 安装教程 (…

5W 1.5KVDC、3KVDC 宽电压输入 DC/DC 电源模块 ——TP05DA 系列

TP05DA系列电源模块额定输出功率为5W,外形尺寸为31.75*20.32*10.65,应用于2:1及4:1电压输入范围 9V-18V、18V-36V、36V-72V、9V-36V和18V-72VDC的输入电压环境,输出电压精度可达1%,具有输出短路保护等功能,可广泛应用于…

06-07 -变量的高级主题

---- 整理自狄泰软件唐佐林老师课程 文章目录 1. 变量值的替换2. 变量的模式替换3. 规则中的模式替换4. 变量值的嵌套使用5. 命令行变量6. 环境变量7. 目标变量(局部变量)8. 模式变量9. 工程 1. 变量值的替换 使用指定字符(串)替…

华人团队用大模型实现“读心术”:大脑活动直接变文字

NeurIPS收录的一项新研究,让大模型也学会“读心术”了! 通过学习脑电波数据,模型成功地把受试者的脑电图信号翻译成了文本。 而且整个过程不需要大型设备,只要一块特制的“头巾”就能实现。 这项成果名为DeWave,能在…

观测云 VS ELK:谁是日志监控的王者?

前言 作为 IT 信息系统运行状态感知和故障分析的重要手段,日志在行业兴起之初便为运维和开发环节所广泛应用。当应用和系统发生故障或出现问题时,日志数据成为了排查和诊断问题的重要依据。通过分析日志,开发人员和运维人员可以了解系统的运…

Redis是什么? 日常运维 Redis 需要注意什么 ? 怎么降低Redis 内存使用 节省内存?

你的项目或许已经使用 Redis 很长时间了,但在使用过程中,你可能还会或多或少地遇到以下问题: 我的 Redis 内存为什么增长这么快?为什么我的 Redis 操作延迟变大了?如何降低 Redis 故障发生的频率?日常运维…

LeetCode刷题记(五):121~150题

121. 买卖股票的最佳时机 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从…

59-ARM与FPGA间RGMII通信电路设计

视频链接 ARM与FPGA间RGMII通信电路设计01_哔哩哔哩_bilibili ARM与FPGA间RGMII通信电路设计 第2课:千兆以太网电路设计 第3课:万兆网电路设计 第49课:PCIE转网口电路设计 第50课:RGMII & SGMII & QGMII电路设计 1、…