[InnoDB 学习1-3] 重做日志

 

重做日志

作用

InnoDB存储引擎的内存区域除了有缓冲池外,还有重做日志缓冲(redo log buffer)。

InnoDB存储引擎首先将重做日志信息先放入到这个缓冲区,然后按一定频率将其刷新到重做日志文件。

重做日志缓冲一般不需要设置很大,因为每秒都会将重做日志缓冲刷新到日志文件,因此用户只需要保证每秒产生的事务量在这个缓冲大小之内即可。(默认为16MB)

mysql> show variables like 'innodb_log_buffer_size';
+------------------------+----------+
| Variable_name          | Value    |
+------------------------+----------+
| innodb_log_buffer_size | 16777216 |
+------------------------+----------+

什么时候刷新到磁盘?

以下3种情况会将重做日志缓冲中的内容刷新到磁盘的重做日志文件中:

  • Master Thread每一秒会刷新。
  • 每个事务提交时。
  • 当重做日志缓冲池剩余空间小于1/2时。