redo log和binlog是两个独立的日志嘛,如果我们不用两阶段提交,要么就是先写完redo log再写binlog,要么就是写完binlog再写redo log,其实都是有问题的。 为了解决这种情况,InnoDB使用两阶段提交方案,当事务提交后,是有3个步骤的,先把更新写入redo log,处于prepare状态,再写入binlog,最后再修改redo log状态为commit。这样处理的话,主要就是一点,当事务处于prepare时,但是找不到对应的binlog,那么此时事务就回滚,如果找到了,那就可以直接提交事务。
