每当事务提交,例如autocommit模式下单条语句提交,或者普通模式下MySQL收到commit语句,MySQL将按以下步骤进行:缓存
先把整个事务写入binary log,spa
然后才将事务提交到InnoDB。日志
注:写binary log不是写磁盘,将binary log写磁盘由系统变量sync_binlog决定。具体来讲,即每向binary log写入sync_binlog次,即刷写一次磁盘。事务
二进制日志缓存it
binary log cache变量
存在:每条链接各一个,大小由系统变量binlog_cache_size决定。date
做用:一个事务作出的修改,当小于binlog_cache_size时,全部修改内容存入binary log cache;当大于binlog_cache_size时,内容存入磁盘临时表。二进制
关联:co
二进制日志工做过程:磁盘
对非事务性表的修改,在语句执行结束后,即写入binary log。
在事务内部,对InnoDB表的全部修改,如insert、delete、update,存入binary log cache,