mysql 两段式提交

学完了三个日志的大概作用,后面就来了解了解两段式提交了,下面我们将从mysql执行过程来分析两段式提交的过程和作用

两阶段提交

先来看看执行图解

上面图解我们能清楚的看到两阶段提交的过程,这里就有疑问了 为啥redo log要写两次ne 不能只写一次嘛

我们先来回顾下两种日志使用领域 (redo是崩溃恢复,bin是主从复制)先写redo 或者先写 bin 这样就不可避免的会出现只记录了一种日志了

1 只有binlog 有存,那么如果崩溃了从redo恢复 但是从库从binlog读 就会导致从库比主库多数据

2 只有redolog 有存,那么如果崩溃了 从redo恢复 但是从库是从binlog读 会导致主库比从库多数据

所以就有了两段式提交了,那么两段式提交是怎么解决这个问题的呢

        主要是两段式添加了一个xid 事务id  在写入两个日志的时候都会写入对应的事务id,只要redolog 中不是处于commit阶段,就去binlog去根据事务id去找 有的话就补一个commit 没有的话就执行回滚 ,这样就可以保证数据统一了

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值