Innodb redo log日志文件需要足够大,让InnoDB优化它的I/O,但不要太大,恢复需要很长时间。
mysql [localhost:8028] {root} (sbtest) > pager grep sequence
PAGER set to ‘grep sequence’
mysql [localhost:8028] {root} (sbtest) > show engine innodb status\G select sleep(60); show engine innodb status\G
Log sequence number 907908934
1 row in set (0.00 sec)
1 row in set (1 min 0.00 sec)
Log sequence number 913047355
1 row in set (0.01 sec)
日志序列号,这是写入事务日志的总byte数。因此,现在您可以看到在一分钟内有多少MB被写入日志。
mysql [localhost:8028] {root} (sbtest) > select (913047355-907908934)/1024/1024 mb_per_min;
±-----------+
| mb_per_min |
±-----------+
| 4.90038013 |
±-----------+
1 row in set (0.00 sec)
作为一个粗略的经验法则,你可以使redo log足够大,其实大概容纳一个小时左右的日志就足够了。
一个小时的时间间隔,它可以在刷新点和检查点过程中使用顺序I/O重新排序写操作。
按照这个速度,这个服务器总共可以使用300 MB的日志。默认redo log是2个文件。
这个就可以设置innodb_log_file_size=150M即可。