开发者

MySQL中的binlog刷盘机制解读

目录
  • 一、binlog刷盘机制
  • 二、sync_binlog属性提供的3种刷盘策略
  • 总结

一、binlog刷盘机制

  • binlog是由androidmysql的server层提供出来一种日志记http://www.devze.com录方式,是所有引擎共用的,不编程是只属于innoDB引擎。
  • binlog同样提供了3种同步机制,通过配置文件中sync_binlog属性的实现的刷盘策略。

MySQL中的binlog刷盘机制解读

二、sync_binlog属性提供的3种刷盘策略

  • sync_binlog=0 操作系统决定(实时写,延迟刷)。

由server层的执行器在提交了事务之后,写到PjavascriptageCache,再由操作系统决定什么时候调用fsync函数将 binlog 写入到磁盘(性能最高,但宕机可能丢失部分 binlog)

MySQL中的binlog刷盘机制解读

  • sync_binlog=1 提交时写入(实时写、实时刷)。

每次事务提交时都强制刷新 binlog 到磁盘(最安全,但性能较低)

MySQL中的binlog刷盘机制解读

  • sync_binlog=2 n次事务提交(实时写、延迟刷)。

由server层的执行器在提交了N次事务之后,写到PageCache,再由操作系统决定什么时候调用fsync函数将 binlog 写入到磁盘(折中方案,平衡安全性和性能)

MySQL中的binlog刷盘机制解读

  • mysql5.7.7以前的版本默认使用sync_binlog=0
  • mysql5.7.7以后的版本默认使用sync_binlog=1

总结

以上为个人经验,希望能给zqJEFptY大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新数据库

数据库排行榜