[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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义