暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

mysql 如何计算合理的redo大小

原创 黄江平 2022-08-15
756

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即可。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论