Innodb之redo日志

本文详细阐述了InnoDB引擎中redolog的工作原理,包括其在MySQL中的角色、写入流程、异步刷新以及与binlog的区别。重点讲解了如何通过配置关键参数优化性能和安全性,如redolog缓冲区大小和文件设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Innodb引擎执行流程
在这里插入图片描述

redo log

​ MySQL中的redo log(重做日志)是实现WAL(预写式日志)技术的关键组件,用于确保事务的持久性和数据库的crash-safe能力。借用《孔乙己》中酒店掌柜使用粉板记录赊账的故事,可以形象地解释redo log的工作原理和其在MySQL中的作用。

工作原理
  • 粉板(redo log)

​ MySQL中的redo log充当了酒店掌柜的粉板角色。当有数据更新操作时,InnoDB引擎首先将这些变更写入到redo log中,并同时更新内存。这一步完成后,更新操作即视为完成。这个过程非常快,因为写入redo log通常比直接更新磁盘上的数据要快得多。

  • 账本(磁盘数据文件)

​ 与掌柜的账本类似,MySQL中的磁盘数据文件存储了数据库的持久状态。在系统空闲时,或者当redo log快满时,InnoDB会将redo log中记录的变更同步到磁盘上的数据文件中,确保数据的持久化。

  • WAL技术

​ 即Write-Ahead Logging,其核心思想是先记录日志(即先写redo log),再将数据持久化到磁盘上。这样做的好处是提高了数据更新的效率,并且通过redo log可以在数据库异常重启后恢复未持久化的数据变更,保证数据的完整性。

循环使用

在这里插入图片描述

  • redo log空间是固定的&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值