[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
Buy me a cup of coffee ☕.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步