当前位置: 代码网 > it编程>数据库>Mysql > MySQL中的binlog刷盘机制解读

MySQL中的binlog刷盘机制解读

2025年08月17日 Mysql 我要评论
一、binlog刷盘机制binlog是由mysql的server层提供出来一种日志记录方式,是所有引擎共用的,不是只属于innodb引擎。binlog同样提供了3种同步机制,通过配置文件中sync_b

一、binlog刷盘机制

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

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

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

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

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

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

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

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

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

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com