何时在二进制日志上记录主服务器上的事件(update / insert / alter)?
1. When it started on the master server, it will be written to the bin log
2. When it started and completed on the master, then will be logged
具体来说,我想知道ALTER情况下的行为 如果答案为1,那么只有在主站上启动ALTER时,在正常情况下,amster和slave之间不会出现延迟。
答案 0 :(得分:1)
非事务性语句立即写入二进制日志。对于MySQL 5+,这意味着立即写入针对不支持事务的存储引擎的任何语句。
您不应该针对事务内的非事务性表执行语句。
事务提交时,事务语句将写入二进制日志。对于MySQL 5+,这意味着针对事务表的任何语句。
目前,ALTER TABLE强制进行隐式提交,因此会立即将其写入二进制日志。根据MySQL documentation:
在语句完成之后但在释放任何锁定或完成任何提交之前立即执行二进制日志记录。这可确保以执行顺序记录日志。