MySQL · 配置参数 · sync_binlog

参数说明

sync_binlog:控制 MySQL 二进制日志(binlog)同步到磁盘的频率。

Property Value
Command-Line Format --sync-binlog=#
System Variable sync_binlog
Scope Global
Dynamic Yes
Type Integer
Default Value (>= 5.7.7) 1
Default Value (<= 5.7.6) 0
Minimum Value 0
Maximum Value 4294967295
  • sync_binlog = 0,每进行事务提交后,MySQL 不做 fsync 之类的磁盘同步指令刷新 binlog_cache 中的信息到磁盘,而让文件系统自行决定什么时候来做同步,或者 cache 满了之后才同步到磁盘。
  • sync_binlog = 1,每进行 1 次事务提交,MySQL 将进行一次 fsync 之类的磁盘同步指令来将 binlog_cache 中的数据强制写入磁盘。
  • sync_binlog = N,每进行 N 次事务提交,MySQL 将进行一次 fsync 之类的磁盘同步指令来将 binlog_cache 中的数据强制写入磁盘。

设置

  • 性能:0 > N > 1
  • 安全:1 > N > 0
  • 建议:区分业务场景进行设置
1
2
# 支付场景:sync_binlog = 1
# 其他场景:sync_binlog = 0