statement:基于sql语句级别的binlog,每条修改数据的sql都会保存到binlog里;
row:基于行级别,记录每一行数据的变化,也就是将每行数据的变化都记录到binlog里面,记得非常详细,但是并不记录原始sql,在复制的时候,并不会因为存储过程或触发器造成主从数据不一致的问题,但是记录日志量较statement格式大得多。
mixed:混合statement和row模式,默认情况下采用statement模式记录,某些情况下会切换到row模式,例如sql中包含与时间、用户相关的函数等;
这三种格式同时也对应了MySQL复制的3种技术:
binlog_format=statement:基于sql语句的复制,也叫SBR(statement-based replication);
binlog_format=row:基于行的复制,也叫RBR(Row-based replication);
binlog_format=mixed:混合模式复制,混合了基于sql语句的复制和基于行的复制;