Redo / Undo / WAL(为什么 MySQL 写比读复杂)

news/2025/12/6 14:38:52/文章来源:https://www.cnblogs.com/xfydaydayup/p/19315753

🔥 一句话先破题

MySQL 的所有写操作 = 改内存 + 写日志(两个日志) → 最后才慢慢刷磁盘数据页。

原因是:

直接改磁盘太慢,且不安全,必须通过日志来“骗过磁盘的慢”。

这就是 WAL(Write-Ahead Logging)的本质。


🍔 先上总图(最通俗的写流程,助你先有大局观)

你执行:

UPDATE user SET age=20 WHERE id=1;

InnoDB 实际上做了 4 件事:

  1. 生成 Undo Log:记录“怎么回滚”
  2. 改内存中的数据页(Buffer Pool)
  3. 生成 Redo Log:记录“怎么重做”
  4. 先把 Redo Log 落盘(刷到 redo log file)
    这是 WAL:先写日志,再写数据

最终数据页还是在内存里,过一段时间才被刷回磁盘(flush)。

为什么要搞这么多环节?
因为磁盘太慢了,数据库只能耍聪明。


🟦 1. Undo Log:用来“穿越时间”的日志

Undo Log 是 MySQL 自己的“时光倒流机器”。

用途:

  • 事务回滚(roll back)
  • MVCC 读取旧版本(快照读)

你更新 age=20,那么 Undo Log 会记录:

原来的 age=18
原来的 row trx_id=xxx

也就是:
我怎么把这一行恢复到更新前?

Undo Log 存在 Undo Segment 里,属于“逻辑日志”。


🟥 2. Redo Log:保障 Crash-Safe 的日志(比 Undo 更底层)

Redo Log 不是为了回滚,而是为了 宕机恢复(Crash Recovery)

Redo Log 记录的是:

我对某个页做了哪些物理操作(偏移量 + 改了什么值)

也就是:

数据库重启后,我可以照着 redo log 把内存里的修改重新“补”到磁盘页上。

Redo Log 是物理日志,且是循环写的(固定大小文件,如 2GB)。


🧊 Undo + Redo 的关系指南(最容易混)

你可以这样记:

目标 用哪个
想回到过去(回滚) Undo Log
想补上未来(崩溃恢复) Redo Log
想恢复旧版本记录给 MVCC Undo Log

Undo 是 “回滚我自己”
Redo 是 “重做我做过的事”

两个日志互补,缺一不可。


🧠 3. WAL:Write-Ahead Logging(写之前先记账)

核心原则:

数据还没写盘可以,但 redo log 必须先写盘。

为什么?
因为如果只改了内存,MySQL 崩了,那数据就丢了。

所以写流程如下:

BEGIN;
改内存页 → 写 redo buffer → 刷 redo log(fsync) → COMMIT

数据页本身可以晚点刷盘(这叫异步刷盘),
但 redo log 必须先落盘,才能保证“崩了不丢”。

这就是 WAL 的灵魂。


🎬 4. 整个写查询的动画版(让你脑补一遍)

🔔 步骤 1:生成 Undo Log

为了能回滚 → 先记录旧值

Undo Log: {id=1, old age=18}

🧱 步骤 2:修改内存页(Buffer Pool)

页还没刷到磁盘,只是在 RAM 里改了一份。

📝 步骤 3:生成 Redo Log(InnoDB Log Buffer)

记录“我改了哪个页、偏移量、改了什么字段”。

🔥 步骤 4:刷 Redo Log 到磁盘

这是 commit 时最关键的一步
也是 MySQL 写性能瓶颈的来源(fsync)

保证崩机也能恢复

🕒 步骤 5:后台慢慢把数据页刷盘(异步)

最终数据会被刷到磁盘的 .ibd 文件。

注意:这个步骤跟 commit 无关,不需要马上做。


🧨 为什么 MySQL 写比读复杂?(重点解释)

读:

  • 看 Buffer Pool
  • 没有 → 读一页
  • 完事

写:
需要:

✔ 1. 生成 Undo Log

为了回滚 + MVCC 历史版本

✔ 2. 改 Buffer Pool

脏页(dirty page)形成

✔ 3. 生成 Redo Log

为了 crash-safe

✔ 4. WAL:Redo 先刷盘(昂贵的 fsync)

这是必须的

✔ 5. 后台还要刷脏页(checkpoint)

由后台线程专门处理

✔ 6. Redo Log 是循环写 → 还要配合 checkpoint

避免覆盖

写操作包含:

  • 两份日志(Undo/Redo)
  • 两次写(redo write、data page write)
  • 事务管理
  • MVCC 版本链维护
  • 缓冲池管理

写要做的事情至少是读取的 5〜10 倍。


🧩 再讲一个你一定会懂的比喻:

想象你写论文:

读论文 = 打开文件 → 读一小段 → 做笔记 → 关掉

写论文 =

  1. 做备份(Undo)
  2. 打草稿(改内存页)
  3. 写修改日志(Redo)
  4. 把日志保存到本地(WAL:fsync)
  5. 最后再慢慢把最终版本保存(Checkpoint)

写比读累得多这一点,就很像 MySQL。


🎯 最终总结一张图(你面试用它吊打别人)

            +---------------------+|    Client SQL       |+---------+-----------+|v+------------------------------+|      1. Undo Log(逻辑)     |+------------------------------+|v+------------------------------+| 2. 修改 Buffer Pool 页(内存)|+------------------------------+|v+------------------------------+|   3. Redo Log(物理日志)     |+------------------------------+|v+------------------------------+|   4. WAL:先写 redo 文件     ||     (fsync, 最关键最慢)      |+------------------------------+|事务提交成功|v+------------------------------+|   5. 后台刷脏页到磁盘(慢)   |+------------------------------+

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年全国井式炉十大源头厂家排行榜,正规厂商专业制造商新

为帮助机械加工、热处理等行业企业精准锁定适配生产需求的井式炉供应商,避免采购环节因设备性能不达标、售后无保障走弯路,我们从核心技术实力(如炉温均匀性控制、能耗优化方案)、产品质量稳定性(含材料选用标准、…

2025 年 12 月软件开发公司权威推荐榜:创新引擎与高效交付口碑之选

2025 年 12 月软件开发公司权威推荐榜:创新引擎与高效交付口碑之选 在数字经济浪潮持续奔涌的今天,软件开发已成为驱动各行各业转型升级的核心引擎。无论是构建企业级管理系统以优化内部流程,还是开发前沿的移动应用…

10411_基于Springboot的物业管理系统

1、项目包含 项目源码、项目文档、数据库脚本、软件工具等资料; 带你从零开始部署运行本套系统。 2、项目介绍 伴随城市化进程加速,物业管理属于城市社区经营关键构成局部,其信息化,智能化水准加强极为必要,本文规…

2025年12月小程序开发服务商权威推荐榜:创新赋能与用户体验口碑之选,深度解析技术实力与市场竞争力

2025年12月小程序开发服务商权威推荐榜:创新赋能与用户体验口碑之选,深度解析技术实力与市场竞争力 在数字经济与实体经济深度融合的当下,小程序凭借其轻量化、强连接、易触达的特性,已成为企业数字化转型不可或缺…

2025年12月APP开发公司权威推荐榜:创新技术与用户体验双轮驱动,精选实力派开发团队深度解析

2025年12月APP开发公司权威推荐榜:创新技术与用户体验双轮驱动,精选实力派开发团队深度解析 随着移动互联网进入存量竞争与价值深挖的新阶段,企业对APP的需求已从“从无到有”的粗放建设,转向“从有到优”的精耕细…

实用指南:2. 单片机基础概述

实用指南:2. 单片机基础概述2025-12-06 14:31 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important…

2025年工业设备智能化整体服务生产厂推荐:看哪家实力强

在工业4.0浪潮下,智能化设备是企业降本增效的核心引擎。食品、能源、制药等领域对定制化+洁净化+智能化的设备需求激增,但市场上服务商水平参差不齐。以下依据技术实力、行业经验与口碑,推荐5家工业设备智能化一站式…

2025年上海十大民事纠纷处理机构推荐:看哪家口碑好

本榜单依托司法部门合规记录、真实客户口碑调研与案件胜诉率数据,深度筛选出十家标杆机构,为遇到房产、婚姻等民事纠纷的用户提供客观参考,助力匹配经验丰富的服务伙伴。 TOP1 推荐:上海川汇律师事务所 推荐指数:…

2025年中国井式炉靠谱厂家推荐:井式炉制造商及定制生产企业

本榜单依托工业窑炉领域全维度市场调研与真实客户口碑,深度筛选出五家标杆企业,为机械加工、热处理等行业企业选型提供客观依据,助力精准匹配适配的井式炉定制生产伙伴。 TOP1 推荐:宜兴市中阳机械制造有限公司 推…

B+Tree(理解索引为什么这样做)

🧱 1. 先一句话:B+Tree 是为磁盘 I/O 优化出来的树 不是为了算法优雅,也不是为了数据结构好看。 数据库最贵的不是算力,是: 磁盘随机 I/O 随机读一个页(16KB)要 0.1~1ms 在 CPU 看来这是地狱般的慢。 所以索引…

2025年12月车间喷淋喷雾,车间喷雾降尘设备,高压喷雾机厂家最新推荐:喷雾精度与品牌筛选

引言在2025年12月,车间喷淋喷雾及喷雾降尘设备在工业生产中的重要性愈发凸显。国内相关行业协会对车间喷雾降尘设备进行了全面且权威的测评。据协会发布的白皮书显示,此次测评覆盖了全国超过500家高压喷雾机厂家及相…

2025年12月降尘喷淋系统,工地喷淋,车间喷淋降温系统厂家最新推荐:降温效果与品质参考

引言在 2025 年 12 月,降尘喷淋系统、工地喷淋以及车间喷淋降温系统在建筑施工、工业生产等领域的重要性愈发凸显。国内相关行业协会为了规范市场,为用户提供更具参考价值的选择,开展了一系列针对此类系统厂家的测评…

內網滲透:Metasploit、Cobalt Strike使用

1、复习msf,使用msfvenom生成木马并反弹meterpreter会话2、参考课件,使用msf完成黑客攻击内网初体验实验3、安装部署Cobalt Strike服务端并使用客户端连接4、使用Cobalt Strike生成木马并成功控制肉鸡执行屏幕截屏操…

2N7002K-ASEMI智能家居控制专用2N7002K

2N7002K-ASEMI智能家居控制专用2N7002K编辑:LL 2N7002K-ASEMI智能家居控制专用2N7002K 型号:2N7002K 品牌:ASEMI 封装:SOT-23 RDS(on):5.0Ω 批号:最新 引脚数量:3 封装尺寸:如图 特性:N沟道MOS管 工作结温:-…

2025年深圳Top5智能营销SaaS公司排行榜:南方网通优

为帮助企业精准筛选适配智能营销需求的SaaS服务商,避免技术选型弯路,本文从技术架构创新性、行业场景适配度、客户响应效率及真实口碑反馈四大维度,对深圳地区头部玩家展开评估,终梳理出2025年的5大智能营销SaaS公…

探秘中臻达:钢结构领域的靠谱之选

在钢结构行业,中臻达逐渐崭露头角,备受关注。很多人都在问中臻达怎么样,中臻达产品又如何,接下来就让我们深入了解一下。 行业优势显著 中臻达的技术创新成果在行业内具有领先地位。在工业建筑钢结构方面,其核心构…

20232411 2025-2026-1 《网络与系统攻防技术》实验八实验报告

1.实验内容Web前端 - HTML基础 Web前端 - JavaScript与DOM Web后端 - MySQL基础 Web后端 - PHP与数据库连接 基本安全攻击实践 综合安全平台实战2.实验过程 1.建立Web前端html。 (1)启动Apache。使用命令systemctl sta…

VC(9.0~14.x)运行库下载链接

VC(9.0~14.x)运行库下载链接Visual Studio VCVS2008 VC9.0VS2010 VC10.0VS2012 VC11.0VS2013 VC12.0VS2015 VC14.0VS2017 VC14.x1VS2019 VC14.x1VS2022 VC14.x1VS2026 VC14.x2Note!!! x1 and x2: x1 was the name us…

Kubernetes集群的搭建与DevOps实践(上)- 架构设计篇

本文将探讨生产级Kubernetes集群的架构设计、技术选型,以及完整的DevOps体系设计 适合读者:架构师、技术负责人、希望深入理解K8s和DevOps设计原理的工程师目录一、为什么需要Kubernetes 二、整体架构设计 三、技术选…

2025年景观护栏设计公司五大推荐,景观护栏设计厂家选哪家合

在城市建设与园林景观升级的浪潮中,优质的景观护栏不仅是安全防护的守护者,更是城市美学与品牌形象的点睛之笔。面对市场上鱼龙混杂的景观护栏供应商,如何找到口碑好、服务靠谱的合作厂家?以下依据产品工艺、服务能…