重做日志
作用
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时。