MySQL binlog有STATEMENT、ROW和MIXED三种格式,STATEMENT记录SQL语句性能好但可能导致主从不一致,ROW记录行变更数据一致性最好但日志量大,MIXED自动选择。 STATEMENT格式记录原始SQL语句,优点是日志量小、可读性强;缺点是包含不确定函数(如NOW()、UUID()、RAND())的语句在从库执行结果可能不同,导致主从数据不一致。ROW格式记录每行数据的变更前和变更后值,优点是数据一致性最强、可用于CDC数据变更捕获;缺点是日志量大。MIXED格式在普通语句用STATEMENT、遇到不确定函数或影响行数大的语句自动切换为ROW,是较平衡的选择。MySQL 5.7.7+默认ROW格式。从库并行复制:基于组提交的并行在ROW格式下可以按数据库或组提交粒度并行回放,减少主从延迟。binlog还用于时间点恢复(PITR)和数据同步到Elasticsearch等外部系统。