redo log、binlog、undo log总结

redo log和undo log是InnoDB引擎的,binlog是server层的

undo log和binlog是逻辑日志,redo log是物理日志

undo log用于记录事务开始前的状态,用于事务失败时的回滚操作;

redo log记录事务执行后的状态,用来恢复未写入data file的已成功事务更新的数据

  1. redo log:重做日志,属于物理日志,用于记录事务操作的变化,记录的是数据修改之后的值,不管事务是否提交都会记录下来

    更新语句执行时,InnoDB引擎会把更新记录写到redo log日志中,然后更新内存,此时算是语句执行完了,然后在空闲的时候或者是按照设定的更新策略将redo log中的内容更新到磁盘中,关键点是先写日志,再写磁盘

  2. binlog:归档日志,属于逻辑日志,是以二进制的形式记录的是这个语句的原始逻辑

  3. undo log:回滚日志,提供回滚操作,保存了事务发生之前的数据的一个版本,可以用于回滚,同时可以提供多版本并发控制下的读(MVCC),也即非锁定读

redo log和binlog区别

  • redo log是属于innoDB层面,binlog属于MySQL Server层面
  • redo log是物理日志,记录该数据页更新的内容;binlog是逻辑日志,记录的是这个更新语句的原始逻辑
  • redo log是循环写,日志空间大小固定;binlog是追加写,是指一份写到一定大小的时候会更换下一个文件,不会覆盖
  • 应用场景不同:binlog可以作为恢复数据使用,主从复制搭建;redo log作为异常宕机或者介质故障后的数据恢复使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值