MySQL 的 binlog、redo log、undo log 有什么区别?
① redo log(重做日志,InnoDB 引擎层):记录物理页修改,循环写(ib_logfile),WAL 机制,用于崩溃恢复保证持久性(已提交事务不丢);② binlog(二进制日志,Server 层):记录逻辑 SQL/行变更,追加写,用于主从复制与时间点恢复;③ undo log(回滚日志,InnoDB 层):记录修改前的值,用于事务回滚与 MVCC 版本链,purge 线程清理。区分:redo 是物理(页)、InnoDB 特有、崩溃恢复;binlog 是逻辑(语句/行)、所有引擎、复制与备份;undo 用于回滚与读旧版本。
一起交流
分享经验,让问题更进一步
讨论,从你的观点开始
还没有回复,欢迎补充经验或分享不同的思路。