[Mysql]日志刷盘总结

Mysql

redolog的刷盘时机#

  • mysql正常关闭的时候

  • redolog buffer写入超过一半的时候

  • 事务提交的时候

    • 0每次提交事务,redolog留在buffer中不写入磁盘
    • 1每次提交事务,redolog写入磁盘
    • 2每次提交事务,redolog写入操作系统的文件缓存页面
  • 后台线程每隔一秒写入磁盘一次

    • 0 把redolog buffer中的内容刷盘
    • 2 把page cache中的内容刷盘

binlog的刷盘时机#

  • 0 每次提交事务只写到操作系统的文件缓存,交给操作系统合适刷盘 只write

  • 1 每次提交事务都执行write fsync刷盘

  • N,N次提交事务write,有一次fsync

Redis

aof#

对AOF的写操作实际上不是直接写到磁盘的,而是写到一个内核中的缓冲区的,然后异步地刷新回磁盘
这个刷新策略有三种appendfsync

  • always 每次写aof就调用fsync,这个性能太差
  • no 永远不主动调用fsync,由系统决定何时刷新到磁盘
  • everysec 每隔一秒调用一次fsync,这个一秒可以配置

rdb#

bgsave 和 save

作者:Esofar

出处:https://www.cnblogs.com/DCFV/p/18367947

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   Duancf  阅读(31)  评论(0编辑  收藏  举报
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
menu
点击右上角即可分享
微信分享提示