MYSQL二阶段提交

MYSQL二阶段提交

binlog,redolog都会记录数据,当记录数据时是先写binlog,还是redolog,不管先写redolog还是binlog都会出现问题,两个文件要保证要么都写要么都不写。如果写完redolog没有写binlog的时候可能会造成数据不一致
binlog和redolog都会同时记录数据,那么他么记录的顺序是什么样的?

执行流程:
1、执行器先从引擎中找到数据,如果在内存中直接返回,如果不在内存中,查询后返回
2、执行器拿到数据之后会先修改数据,然后调用引擎接口重新写入数据
3、.引擎将数据更新到内存,同时写数据到redo中,此时处于prepare阶段,并通知执行器执行完成,随时可以操作
4、执行器生成这个操作的binlog
5、执行器调用引擎的事务提交接口,引擎把刚刚写完的redo改成commit状态,更新完成

二阶段提交

MYSQL二阶段提交_第1张图片

你可能感兴趣的:(MYSQL,mysql,数据库)