? 先写redo log后写binlog:假设在redo log写完,binlog还没有写完的时候,MySQL进程
异常重启。由于我们前面说过的,redo log写完之后,系统即使崩溃,仍然能够把数据恢复
回来,所以恢复后这一行c的值是1。但是由于binlog没写完就crash了,这时候binlog里面
就没有记录这个语句。因此,之后备份日志的时候,存起来的binlog里面就没有这条语句。
然后你会发现,如果需要用这个binlog来恢复临时库的话,由于这个语句的binlog丢失,这
个临时库就会少了这一次更新,恢复出来的这一行c的值就是0,与原库的值不同。
? 先写binlog后写redo log:如果在binlog写完之后crash,由于redo log还没写,崩溃恢复
以后这个事务无效,所以这一行c的值是0。但是binlog里面已经记录了“把c从0改成1”这个
日志。所以,在之后用binlog来恢复的时候就多了一个事务出来,恢复出来的这一行c的值
就是1,与原库的值不同。