innodb内存区域除了缓冲池外,还有重做日志缓冲。innodb存储引擎会先将重做日志信息写入缓冲区,然后按照一定频率刷新到重做日志文件。其可由参数innodb_log_buffer_size进行控制。
mysql> show variables like 'innodb_log_buffer_size'\G;
*************************** 1. row ***************************
Variable_name: innodb_log_buffer_size
Value: 8388608
1 row in set (0.00 sec)
8M的重做日志缓冲能够满足大多数应用。因为在以下条件会刷新到重做日志文件
- master thread每一秒将重做日志缓冲刷新到重做日志文件
- 每个事务提交时会刷新到重做日志文件
- 当重做日志缓冲池剩余空间小于1/2时,重做日志缓冲会刷新到重做日志文件