innodb_flush_log_at_trx_commit和sync_binlog设置为非双1
一般非双1是:
- innodb_flush_log_at_trx_commit=2(每次事务提交时都只是把redo log写到page cache)
- sync_binlog=1000(表示每次提交事务都write,但累积1000个事务后才fsync)
场景
- 业务高峰期。一般如果有预知的高峰期,DBA会有预案,把主库设置成“非双1”
- 备库延迟,为了让备库尽快赶上主库。@永恒记忆和@Second Sight提到了这个场景
- 用备份恢复主库的副本,应用binlog的过程,这个跟上一种场景类似。
- 批量导入数据的时候。