bin log
DML语句机会写redo log 文件,也会写binlog文件,binlog在mysql数据库中至关重要,叫做mysql的二进制文件,功能应用于备份恢复,和主从复制,那么binlog cache刷新到binlog文件中,需要的刷新条件是什么呢?
通过sync_binlog参数来决定,该参数有N个值,
sync_binlog=0,当事物提交之后,mysql不做fsync之类的磁盘tongue刷新binlog_cache中的信息到磁盘,而让filesystem自行决定什么时候来同步,或者cache满了之后再同步。
sync_binlog=n,每惊醒n次事物提交后,mysql将进行一次fsync之类的磁盘同步指令来将binlog_cache中的数据强制写入磁盘。
为了确保安全性,我们可以将sync_binlog设置为1,
为了保证最价性能,我们可以将sync_binlog设置为0,
sync_binlog=1
innodb_flush_log_at_trx_commit=1
这就是数据库中的双一模式,可以确保数据更加安全。
show variables like ‘binlog_cache_size’;
±------------------±------+
| Variable_name | Value |
±------------------±------+
| binlog_cache_size | 32768 |#生产也是默认这个值,基于session,不需要太大。
±------------------±------+
1 row in set (0.00 sec)