《InnoDB引擎四》重做日志缓存

Posted DATA数据猿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《InnoDB引擎四》重做日志缓存相关的知识,希望对你有一定的参考价值。

重做日志缓冲

  InnoDB存储引擎的内存区域除了有缓冲池外,还有重做日志缓冲(redo log buffer)。InnoDB存储引擎首先将重做日志信息先放入到这个缓冲区,然后按照一定频率将其刷新到重做日志文件。重做日志缓冲一般不需要设置很大,因为一般情况下每一秒会将重做日志缓冲刷新到日志文件,因此用户只需要保证每秒产生的事务量在这个缓冲大小内即可。该值可由配置参数innodb_log_buffer_size控制,默认为8MB,可以做调整:

mysql> show variables like 'innodb_log_buffer_size'\\G;
*************************** 1. row ***************************
Variable_name: innodb_log_buffer_size
        Value: 16777216
1 row in set (0.00 sec)

  在通常情况下,8MB的重做日志缓冲足以满足绝大部分的应用,因为重做日志在下列三种情况下会将重做日志缓冲中的内容刷新到外部磁盘的重做日志文件中。

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

以上是关于《InnoDB引擎四》重做日志缓存的主要内容,如果未能解决你的问题,请参考以下文章

InnoDB存储引擎介绍-Checkpoint机制二

《MySQL系列-InnoDB引擎23》文件-InnoDB存储引擎文件-重做日志文件

「mysql优化专题」详解引擎(InnoDB,MyISAM)的内存优化攻略?

InnoDB存储引擎的表空间文件,重做日志文件

MySQL 重做日志文件

Innodb引擎执行SQL的过程