DML事务过程

本文详细介绍了数据库中的脏页管理,包括Redo Log Buffer的使用和刷新策略。当事务更改记录达到一定条件时,如日志文件写满或BufferPool空间不足,会触发刷脏操作。这一过程通过双写机制确保数据安全性,先写入doublewritebuffer,再写入ibd文件,以防止系统崩溃导致的数据丢失。此外,还提到了Binlog日志文件对于数据恢复的重要性。

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

1. 在Buffer Pool中形成脏页(与磁盘中的数据不一致)

2. Redo Log Buffer缓存事务中的事务更改记录,再刷新到磁盘中的Redo log文件中

可通过修改参数设置文件大小、个数和刷新策略(参数设为1最安全,两个过程都是按每笔刷新一次)

3.记录Binlog日志文件(由Mysql服务层生成,以事务的形式记录了DDL和DML语句,用于恢复恢复数据;以日志追加的形式进行记录,没有大小限制)

4.提交,完成事务

刷脏时机(由刷脏线程完成)

1.当Redo log 文件写满

2.Buffer Pool 空间不够了

3.Mysql服务空闲状态

4.Mysql正常关闭

刷脏方式:双写机制(double write)

刷脏时不直接写入对应的ibd文件,而是先拷贝到double write buffer(2M)中,再从double write buffer 写入到double write 段对象(两个区,每个1M),再写入对应ibd文件。

当写入double write buffer发生crash,ibd是干净的;当写入ibd,double write buffer是干净的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值