Statement模式下,会记录所有执行成功DDL和DML操作,包括UPDATE和DELETE操作影响行数为0的情况。
Row模式下,会记录所有执行成功且返回的影响行数大于0的DDL和DML操作,当UPDATE和DELETE操作的影响行数为0时不会记录操作至Binlog。
Mixed模式下,当一条SQL分析到应该使用Statement模式写Binlog时,按照Statement规则,当一条SQL分析到应该使用Row模式写Binlog时,按照Row规则。
- SQL语句UPDATE中含有USER()函数,且执行成功但操作返回的影响行数为0,由于SQL中含有USER()函数,会按照Row规则,故这不会记录至Binlog。
- SQL语句UPDATE SET NAME = 'username' WHERE ID = 6,但是ID为6的数据不存在,尽管执行成功且返回的影响行数为0,但这一条SQL会使用Statement规则,所以这个操作依然会记录至Binlog。