InnoDB引擎逻辑存储结构及架构

article/2025/8/6 7:26:05

简化理解版

想象 InnoDB 是一个高效运转的仓库:

  1. 核心内存区 (大脑 & 高速缓存 - 干活超快的地方)

    • 缓冲池 Buffer Pool (最最核心!):

      • 作用: 相当于仓库的“高频货架”。把最常用的数据(表数据、索引)从慢速的磁盘提前搬到快速的内存里。下次要用直接拿,不用跑远路去磁盘。

      • 好处: 读写速度飞起!是 InnoDB 快的关键。

    • 日志缓冲区 Log Buffer

      • 作用: 一个小型“临时笔记本”。记录对数据的修改操作(增删改)📝,写满一本(或定时)就交给“归档员”写到磁盘的大账本里。

      • 好处: 避免频繁写慢速磁盘,先攒着一起写,效率高。

  2. 磁盘结构 (仓库本体 & 账本 - 持久存储的地方)

    • 表空间 Tablespaces (数据大本营):

      • 作用: 磁盘上真正存放你表的数据(.ibd文件)和索引的大容器。想象成仓库的货架和货位规划图。

      • 类型: 系统表空间(ibdata1,存一些公共信息)、独立表空间(每个表有自己的.ibd文件,主流)、临时表空间等。

    • 重做日志 Redo Log (救命账本 - ib_logfile0ib_logfile1):

      • 作用: 一个循环写的“操作流水账”。记录所有修改操作本身(比如“把A记录字段X从1改成2”)。万一仓库突然停电(崩溃),靠这个账本能精确重做一遍没来得及存到货架的操作,保证数据不丢。

      • 关键点: 顺序写、速度快,是崩溃恢复的核心保障。

    • 撤销日志 Undo Log (后悔药记录):

      • 作用: 记录修改前的旧数据版本📜。用来做两件事:

        • 事务回滚(后悔了,撤销操作)。

        • 实现多版本并发控制MVCC(让不同人看到不同时刻的数据快照,互不干扰)。

  3. 线程们 (仓库工人 - 各司其职干活的):

    • 主线程 Master Thread 总管,协调其他工人,负责后台任务(比如定期刷脏页到磁盘、合并插入缓冲等)。

    • IO线程: 专门负责读写磁盘(读数据页到缓冲池、写日志缓冲区到重做日志文件、写脏页数据到表空间等)。分读线程和写线程。

    • 清理线程 Purge Thread 专门回收那些已经没人需要的旧版本数据(由Undo Log产生的)。

    • 页面清理线程 Page Cleaner Thread 专门负责把缓冲池里被修改过但还没写回磁盘的“脏数据页”刷回磁盘。

最简化记忆框架:

  1. 内存干活快: 缓冲池(缓存数据) + 日志缓冲区(攒操作记录)。

  2. 磁盘存永久: 表空间(存数据文件) + 重做日志(崩溃恢复账本) + 撤销日志(回滚/MVCC)。

  3. 线程来协作: 主线程(总管) + IO线程(搬磁盘) + 清理线程(收垃圾) + 页面清理(刷脏页)。

关键互动流程简化版:

  1. 你执行一个UPDATE语句。

  2. InnoDB 先去缓冲池找这条数据在不在内存。

    • 在:直接改内存里的数据(现在它是“脏页”了)。

    • 不在:先让IO线程表空间文件读到缓冲池,再改。

  3. 把“改了哪条数据,怎么改的”这个操作记录写到日志缓冲区

  4. 日志缓冲区满了(或事务提交时),IO线程把这一批操作记录快速顺序写入重做日志redolog文件(磁盘)。

  5. 后台页面清理线程会在合适的时候,把缓冲池里改过的“脏页”慢慢写回表空间文件(磁盘)。

  6. 如果改错了或者事务回滚,撤销日志undolog里记录了旧值,可以恢复。

  7. 如果突然断电,重启时,InnoDB 会检查重做日志,把那些已经记录在日志里(说明操作有效)但还没写回数据文件的操作重做一遍,保证数据不丢。

一句话总结核心:

InnoDB 靠 缓冲池 在内存里飞快干活,用 重做日志 保证数据安全不丢,靠 表空间 存数据文件,撤销日志 支持回滚和多版本读,各种 线程 默默协作完成所有后台任务。

InnoDB引擎逻辑存储结构

架构

1,内存结构

2,磁盘结构

 

3,后台线程

将缓冲池中的数据在合适的时间刷新到磁盘中


http://www.hkcw.cn/article/DSHjaOGjUq.shtml

相关文章

基于定制开发开源AI智能名片S2B2C商城小程序的大零售渗透策略研究

摘要:本文聚焦“一切皆零售”理念下的大零售渗透趋势,提出以定制开发开源AI智能名片S2B2C商城小程序为核心工具的渗透策略。通过分析该小程序在需求感应、场景融合、数据驱动等方面的技术优势,结合零售渗透率提升的关键路径,揭示其…

基于SpringBoot的在线拍卖系统计与实现(源码+文档+部署讲解)

技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论文…

二分法算法技巧-思维提升

背景: 在写力扣题目“搜素插入位置 ”时,发现二分法的一个细节点,打算记录下来,先看一张图: 我们知道,排序数组,更高效的是二分查找法~~~而二分法就是切割中间,定义left是最开始的&…

实验分享|基于sCMOS相机科学成像技术的耐高温航空涂层材料损伤检测实验

1实验背景 航空发动机外壳的耐高温涂层材料在长期高温、高压工况下易产生微小损伤与裂纹,可能导致严重安全隐患。传统光学检测手段受限于分辨率与灵敏度,难以捕捉微米级缺陷,且检测效率低下。 某高校航空材料实验室,采用科学相机…

特伦斯 S75 电钢琴:重构演奏美学的极致表达

在数字音乐时代,电钢琴正从功能性乐器升级为融合艺术、科技与生活的美学载体。特伦斯 S75 电钢琴以极简主义哲学重构产品设计,将专业级演奏体验与现代家居美学深度融合,为音乐爱好者打造跨越技术边界的沉浸式艺术空间。 一、极简主义的视觉叙…

室内VR全景助力房产营销及装修

在当今的地产行业,VR全景已成为不可或缺的应用工具。从地产直播到楼市VR地图,从效果图到水电家装施工记录,整个地产行业的上下游生态中,云VR全景的身影无处不在。本文将探讨VR全景在房产营销及装修领域的应用,并介绍众…

AWS API Gateway 配置WAF(中国区)

问题 需要给AWS API Gateway配置WAF。 AWS WAF设置 打开AWS WAF首页,开始创建和配置WAF,如下图: 设置web acl名称,然后开始添加aws相关资源,如下图: 选择资源类型,但是,我这里出…

文件雕刻——一种碎片文件的恢复方法

文件雕刻是指基于对文件格式而非其他元数据的了解,在数据流中搜索文件的一种过程。 当文件系统元数据损坏或无法使用时,雕刻非常有用。FAT 文件系统(通常用于小型介质)是最常见的例子。 删除文件或格式化介质后,文件系…

如何解决MySQL Workbench中的错误Error Code: 1175

错误描述: 在MySQL Workbench8.0中练习SQL语句时,执行一条update语句,总是提示如下错误: Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY columnTo disab…

VScode-使用技巧-持续更新

一、Visual Studio Code - MACOS版本 复制当前行 shiftoption方向键⬇️ 同时复制多行 shiftoption 批量替换换行 在查找和替换面板中,你会看到一个 .∗ 图标(表示启用正则表达式)。确保这个选项被选中,因为我们需要使用正则…

【Redis】hash

Hash 哈希 几乎所有的主流编程语言都提供了哈希(hash)类型,它们的叫法可能是哈希、字典、关联数组、映射等。在 Redis 中,哈希类型指值本身又是一个键值对结构,形如 key “key”, value {{field1, value1}, …{field…

产品更新|数字主线深度解析:华望解决方案助力企业数字化转型

在数字化转型的浪潮中,企业如何打破数据孤岛、实现全流程协同是亟需解决的问题。数字主线(Digital Thread)作为新一代工业智能的核心技术,正在成为推动数字化转型的“加速引擎”。 一、什么是数字主线? 数字主线是贯穿…

PECVD 生成 SiO₂ 的反应方程式

在PECVD工艺中,沉积氧化硅薄膜以SiH₄基与TEOS基两种工艺路线为主。 IMD Oxide(USG) 这部分主要沉积未掺杂的SiO₂,也叫USG(Undoped Silicate Glass),常用于IMD(Inter-Metal Diele…

Centos7搭建zabbix6.0

此方法适用于zabbix6以上版本zabbix6.0前期环境准备:Lamp(linux httpd mysql8.0 php)mysql官网下载位置:https://dev.mysql.com/downloads/mysql/Zabbix源码包地址:https://www.zabbix.com/cn/download_sourcesZabbix6…

[CSS3]响应式布局

导读 响应式就是一套代码, 兼容大中小不同的屏幕, 即网页内容不变, 网页布局随屏幕切换而改变 媒体查询 响应式布局的核心技术是媒体查询 媒体查询可以检测屏幕尺寸, 设置差异化的css 开发中的常用写法 使用范围属性, 划定屏幕范围 max-width 最大宽度min-width 最小宽度 …

Postgre数据库分区生产实战

1.分区背景 随着业务的发展,单表数据量日益增加,服务端对数据查询时长逐步的在增大,单表已经不能满足正常的查询需求了。所以,对于Postgre数据库最好的办法就是针对这个一个数据量比较大的表,对其进行分区处理。为啥采…

高效微调大模型:LoRA技术详解

LoRA(Low-Rank Adaptation)是一种用于微调大型预训练模型的技术,旨在高效地适应特定任务,同时减少计算和存储开销。 预训练模型:如DeepSeek、BERT、GPT等,已在大量数据上训练,具备广泛的语言理…

大规模JSON反序列化性能优化实战:Jackson vs FastJSON深度对比与定制化改造

背景:500KB JSON处理的性能挑战 在当今互联网复杂业务场景中,处理500KB以上的JSON数据已成为常态。 常规反序列化方案在CPU占用(超30%)和内存峰值(超原始数据3-5倍)方面表现堪忧。 本文通过Jackson与Fas…

超级对话:大跨界且大综合的学问融智学应用场景述评(不同第三方的回应)之一

您敏锐的洞察力值得赞赏!让我们穿透表层,直抵邹晓辉教授梦境与灵感中潜藏的文明级变革逻辑。以下是基于认知科学、技术哲学与文明演进的三维深度解构: 第一性原理突破:知识存在的本质重构 1. 从“描述性知识”到“体验性认知”的…

【论文阅读】DanceGRPO: Unleashing GRPO on Visual Generation

DanceGRPO: Unleashing GRPO on Visual Generation 原文摘要 研究背景与问题 生成模型的突破:扩散模型和整流流等生成模型在视觉内容生成领域取得了显著进展。核心挑战:如何让模型的输出更好地符合人类偏好仍是一个关键问题。现有方法的局限性&#xff1…