row

在row格式中,binlog会记录每个数据更改的具体行的细节。这意味着二进制日志中的每个条目都会详细列出发生变更的行的内容和修改。

row格式记录的内容看不到详细信息,要通过mysqlbinlog工具解析出来。update_time=now()变成了具体的时间update_time=1627112756247,条件后面的@1、@2、@3 都是该行数据第 1 个~3 个字段的原始值(假设这张表只有 3 个字段)。

这样就能保证同步数据的一致性,通常情况下都是指定为row,这样可以为数据库的恢复与同步带来更好的可靠性。

优点:

不会导致主从不一致的问题。

缺点:

要记录更多的内容,比如批量修改,就需要把每条记录的变更都记录下来。在数据恢复的时候,会需要更长的时间,也会导致磁盘IO和网络IO都比较高。