天天看点

MYSQL-InnoDB-重做日志

每个InnoDB存储引擎至少有一个重做日志文件组,每个文件组下至少有2个重做日志文件,如默认的ib_logfile0和ib_logfile1。可以设置多个重做日志文件组来提高重做日志的高可用性。每个重做日志文件组的重做日志文件大小一致,并以循环写入的方式进行,如图:

MYSQL-InnoDB-重做日志

与二进制日志吧区别

MYSQL-InnoDB-重做日志

重做日志结构

MYSQL-InnoDB-重做日志

重做日志写入过程:

先写重做日志缓冲redo log buffer,以512字节(扇区大小)写入磁盘,如图:

MYSQL-InnoDB-重做日志

重做日志缓冲写入磁盘的条件

  • 主线程每秒将重做日志缓冲写入到重做日志文件,不论事务是否提交
  • 参数innodb_flush_log_at_trx_commit,如图:
    MYSQL-InnoDB-重做日志