MySQL 日志全解:谁在默默守护你的数据安全?
刚才聊完了 MySQL 的索引很多兄弟可能会觉得“只要索引建好了数据库不就稳了吗”其实不然。索引决定了你查得快不快而日志Log则决定了你的数据稳不稳尤其是在断电、宕机这种极端情况下数据能不能找回来全靠它们。今天学长就来带大家深度拆解一下 MySQL 的四大核心日志redo log、undo log、binlog和relay log。咱们不聊虚的概念直接看它们在实战中到底是怎么配合的。一、 redo log重做日志掉电也不怕的“保护神”redo log是物理日志由 InnoDB 存储引擎生成。它的核心作用只有两个字可靠。1. 为什么需要它数据库的数据是存在磁盘上的。如果每次改数据都直接写磁盘那随机 I/O 的性能开销会让你怀疑人生。所以 MySQL 引入了WALWrite-ahead logging机制事务提交前先写日志再写磁盘。2. 它是怎么工作的顺序写入相比于改数据时的随机 I/Oredo log 是追加写入的性能极高。Checkpoint 机制它不会无限增长而是定期将内存中的脏数据刷到磁盘并记录 LSN日志序列号。Crash Recovery如果数据库突然掉电重启后 InnoDB 会读取 redo log 里的记录把还没写进磁盘的数据“重做”一遍保证了事务的持久性。二、 undo log回滚日志事务的“后悔药”如果说 redo log 记录的是“我要做什么”那undo log记录的就是“我之前长什么样”。1. 保证原子性当你执行一个失败的事务或者手动执行ROLLBACK时InnoDB 就会根据 undo log 里的记录把数据改回修改前的样子从而保证事务的原子性。2. 实现 MVCC多版本并发控制这是面试的高频点。InnoDB 的 MVCC 并不是真的存了多个数据副本而是通过ReadView undo log链条实现的。当你查询某个快照版本时系统会顺着 undo log 往前找拼凑出那个时间点的数据模样。三、 binlog归档日志Server 层的“流水账”binlog是逻辑日志属于 MySQL Server 层生成的日志所有引擎都能用。1. 它的功能主从复制这是 binlog 最常用的场景Master 把变动记入 binlogSlave 同步过去执行。数据备份/恢复如果你不小心drop了一张表可以通过全量备份加上 binlog 里的增量记录把数据追回来。2. 核心细节二阶段提交Two-phase Commit为了保证 redo log引擎层和 binlogServer 层的数据一致性MySQL 采用了一个复杂的二阶段提交过程prepare 阶段写 redo log状态设为 prepare并持久化。commit 阶段写 binlog 并持久化然后把 redo log 的状态改为 commit。崩溃恢复逻辑如果系统在中间崩溃了重启后会根据 binlog 里的 XID 来判断如果 binlog 完整即便 redo log 是 prepare 状态也会选择提交。四、 relay log中继日志主从同步的“搬运工”这个日志只存在于Slave从库上。在主从复制场景下Slave 的 I/O 线程把 Master 的 binlog 拷贝过来存在本地就成了 relay log。随后SQL 线程读取 relay log 并在从库上重放从而实现数据同步。五、 总结四大日志的功能对比为了方便大家记忆我总结了这张表日志类型所属层级记录内容核心作用事务特性redo log存储引擎 (InnoDB)物理记录页的改动崩溃恢复、防止掉电数据丢失持久性undo log存储引擎 (InnoDB)逻辑记录改动前的旧值事务回滚、MVCC原子性binlogServer 层逻辑记录SQL 或原始值数据备份、主从复制-relay log从库专用拷贝自 Master 的 binlog作为中转站实现主从同步-在实际面试中面试官最爱问的其实是“binlog 和 redo log 有什么区别”或者是“二阶段提交是怎么保证一致性的”。理解了日志你就能明白为什么 MySQL 的写入性能可以这么高同时还能在宕机时面不改色地找回数据。除了这些还有像慢查询日志这种需要手动开启的工具它记录了执行时间超过阈值的 SQL是咱们进行性能优化的头号利器。

相关新闻

IDEA 常用快捷键

IDEA 常用快捷键

alt ins 可以自动补全构造函数 (两次tab选择none)ctrl / 单行注释,两次单行注释等于取消单行注释ctrl p 查看括号中参数

2026/5/17 12:55:46 阅读更多 →
IFN-γ Surpass ELISA试剂盒如何揭示剂量依赖性干扰素-γ对肿瘤干细胞的双重调控?

IFN-γ Surpass ELISA试剂盒如何揭示剂量依赖性干扰素-γ对肿瘤干细胞的双重调控?

一、干扰素-γ在肿瘤微环境中为何呈现剂量依赖性的双重作用?干扰素-γ(IFN-γ)主要由活化的T细胞、自然杀伤细胞等免疫细胞产生,传统上被视为抗肿瘤免疫的核心细胞因子。其通过与细胞表面的异源二聚体受体(IFNGR1/IFNG…

2026/7/2 22:59:47 阅读更多 →
JAVA之路(5)——继承和super关键字

JAVA之路(5)——继承和super关键字

1. 继承1.1 定义和语法让一个类(子类 / 派生类)获取另一个类(父类 / 基类 / 超类)的属性和方法,相同的属性和方法不需要再次定义,子类只中只需要声明自己独特的属性和方法。语法:// 父类定义 cl…

2026/5/17 12:55:42 阅读更多 →

最新新闻

Java SHA256加密实战:从原理到密码存储与API签名的完整指南

Java SHA256加密实战:从原理到密码存储与API签名的完整指南

1. 项目概述:为什么我们需要SHA256? 在开发中,处理敏感数据是家常便饭,无论是用户密码、支付凭证还是API签名。直接存储明文密码是开发中的大忌,一旦数据库泄露,后果不堪设想。因此,我们必须对这…

2026/7/4 3:51:58 阅读更多 →
数据产业服务分类(25)——数据要素——数据要素转化的主体

数据产业服务分类(25)——数据要素——数据要素转化的主体

人是数据要素与其他生产要素转化的核心与主体。实践活动是纽带数据与现实世界并非彼此割裂、独立存在,而是通过人类实践活动这一关键纽带实现了紧密相连。人类实践活动充当着数据与现实世界连接的桥梁。人类在现实世界中开展各类实践活动,这些活动产生了…

2026/7/4 3:49:58 阅读更多 →
揭秘租赁行业潜规则:为什么大厂都在租翻新打印机?

揭秘租赁行业潜规则:为什么大厂都在租翻新打印机?

很多人好奇,为什么大型企业、连锁公司、上市公司,明明有预算,却偏偏不租新机,反而首选翻新打印机?今天揭秘租赁行业没人说的真话。一、大厂只看实用性,不看面子对专业企业来说,打印机只是办公工…

2026/7/4 3:49:58 阅读更多 →
学习做一个无人机的前置知识(1)

学习做一个无人机的前置知识(1)

四轴无人机两种机身布局市面上四轴无人机分十字 () 型、X 型两种,教学、入门无人机基本都用 X 型,更好操控、飞行更稳。十字 () 型布局机头正对着其中一个螺旋桨。 优点:结构逻辑直观;缺点:操控手感差,微调…

2026/7/4 3:43:57 阅读更多 →
【Springboot毕设全套源码+文档】基于springboot自行车分享平台的设计与实现(丰富项目+远程调试+讲解+定制)

【Springboot毕设全套源码+文档】基于springboot自行车分享平台的设计与实现(丰富项目+远程调试+讲解+定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/4 3:43:57 阅读更多 →
ICAIEI 2026 人工智能与情感智能国际会议

ICAIEI 2026 人工智能与情感智能国际会议

【ICAIEI 2026】International Conference on Artificial Intelligence and Emotional Intelligence ICAIEI 2026 作为一个全球性平台,旨在探索这一交叉领域。它汇聚了研究人员、心理学家、技术专家、政策制定者、教育工作者以及行业领袖,共同探讨如何将…

2026/7/4 3:41:56 阅读更多 →

日新闻

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 正式发布,这是一个关键的安全修复版本,修复了多个方面的问题,还对部分功能进行了优化。 安全修复亮点 此次发布在安全修复上表现突出。binprot 避免了项目引用计数溢出,mcmc 因安全问题提升了上游版本号&#xf…

2026/7/4 0:04:29 阅读更多 →
终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案 【免费下载链接】HMCL A Minecraft Launcher which is multi-functional, cross-platform and popular 项目地址: https://gitcode.com/gh_mirrors/hm/HMCL HMCL(Hello Minecraft! Lau…

2026/7/4 0:06:29 阅读更多 →
KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

1. KMX63与PIC18F66K40的硬件协同架构解析KMX63作为一款三轴加速度计和磁力计组合传感器,与PIC18F66K40微控制器的搭配堪称嵌入式HMI开发的黄金组合。这套硬件组合的核心优势在于KMX63提供的高精度运动感知能力与PIC18F66K40强大的信号处理能力形成了完美互补。KMX6…

2026/7/4 0:06:29 阅读更多 →

周新闻

月新闻