mysql重做日志写入过程

mysql重做日志写入过程

日志从缓冲写入磁盘上的重做日志文件是按一定条件的:
条件一:主线程每秒会将重做日志缓冲写入磁盘的重做日志文件中,不论事务是否已经提交;
条件二:触发过程由参数innodb_flush_log_at_trx_commit控制,表示在提交(commit)操作时,处理重做日志的方式。

参数innodb_flush_log_at_trx_commit可设置为0,1,2。其中:
0,代表当提交事务时,并不将事务的重做日志写入磁盘上的日志文件,而是等待主线程每秒的刷新。
1,是在commit时将重做日志缓冲同步写到磁盘;
2, 代表重做日志异步到磁盘,即不能完全保证commit时肯定会写入重做日志文件,只是有这个动作。