Skip to content

undo log、redo log、bin log 是怎么协作的?

一条更新语句的执行,涉及到 MySQL 三种日志的精密配合。


📋 三种日志分工

日志作用所属
undo log回滚 + MVCCInnoDB
redo log崩溃恢复InnoDB
binlog主从复制 + 数据恢复Server 层

🔄 更新语句执行流程

1. 执行器找存储引擎取数据
2. InnoDB 查 Buffer Pool,没有则磁盘加载
3. 写入 undo log(旧值),更新内存数据
4. 写入 redo log(prepare 状态)
5. 执行器写 binlog
6. redo log 提交(commit 状态)← 两阶段提交

📖 深入阅读:undo log、redo log、bin log 详解

基于 VitePress 构建