statement
优点:
只需要记录SQL语句原文
缺点:
会导致主从库数据不一致的问题
具体示例
比如执行一条update T set update_time=now() where id=1,记录的内容如下。
同步数据时,会执行记录的SQL语句,但是有个问题,update_time=now()这里会获取当前系统时间,直接执行会导致从库与主库的数据不一致。
再比如说,当我们使用DELETE或者UPDATE的时候,指定了LIMIT,但是并没有使用order by,那么最终这条语句在主库和从库上的执行结果可能是不一样的(即使同一个库上面,你执行多次结果可能也不一样)。详见MySQL中limit+order by-查询结果不一致-原因?