MySQL的redolog和binlog

  1. binlog还不能去掉。

一个原因是,redolog只有InnoDB有,别的引擎没有。

另一个原因是,redolog是循环写的,不持久保存,binlog的“归档”这个功能,redolog是不具备的。

2.Redo log不是记录数据页“更新之后的状态”,而是记录这个页 “做了什么改动”。

Binlog有两种模式,statement 格式的话是记sql语句, row格式会记录行的内容,记两条,更新前和更新后都有。

我的理解,redo log记录的是当时的数据是怎么变化的,比如备份的时候记录table表中字段a的值是1→3(由1变成3),而binlog里面记录可能就是多条SQL执行之后a的值才等于3,比如update table set a =1 where ID=1;update table set a=3 where ID=1;或者执行过更多SQL才变成3。

1 prepare阶段 2 写binlog 3 commit
当在2之前崩溃时
重启恢复:后发现没有commit,回滚。备份恢复:没有binlog 。
一致
当在3之前崩溃
重启恢复:虽没有commit,但满足prepare和binlog完整,所以重启后会自动commit。备份:有binlog. 一致

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值