参数说明
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 | # 支付场景:sync_binlog = 1 |