概述
Mysql binlog日志有三种格式,分别为Statement,MiXED,以及ROW!
这三种格式之间有什么区别呢?下面先介绍下各自的优缺点。
ROW
日志中会记录成每一行数据被修改的形式,然后在slave端再对相同的数据进行修改,只记录要修改的数据,只有value,不会有sql多表关联的情况。
优点:在row模式下,bin-log中可以不记录执行的sql语句的上下文相关的信息,仅仅只需要记录那一条记录被修改了,修改成什么样了,所以row的日志内容会非常清楚的记录下每一行数据修改的细节,非常容易理解。而且不会出现某些特定情况下的存储过程和function,以及trigger的调用和出发无法被正确复制问题。
缺点:在row模式下,所有的执行的语句当记录到日志中的时候,都将以每行记录的修改来记录,这样可能会产生大量的日志内容。
mysql>insert into bbb(id) select * from aa;mysql>insert into bb(id) select * from aa;--因为binlog比较大不好分析,所以我先重启了mysql切换binlog#mysqlbinglog mysql-bin.00666