欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

MySQL为什么需要两阶段提交

时间:2023-06-18
MySQL为什么需要两阶段提交 两阶段提交图解 为什么需要两阶段提交?

保证binlog与redolog的数据一致性。

如果没有两阶段提交:

先写redolog,再写binlog:
redolog写完,还没来得及写binlog,MySQL宕机。重启以后,redolog里有记录,MySQL判断事务提交成功,但binlog里没有记录,binlog与redolog出现数据不一致。由于binlog是追加写入日志,往后的时间里binlog会一直缺失这条数据。如果在以后使用binlog恢复这个时间点的数据,会出现数据丢失的情况。

先写binlog,再写redolog:
binlog写完,还没来得及写redolog,MySQL宕机。重启以后,redolog中没有记录,MySQL判断事务提交失败,但是binlog中有记录,binlog与redolog出现数据不一致。如果以后使用binlog恢复数据,就多出了一个事务操作。

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。