##1.statment格式的binlog

我们可以使用如下命令看下binlog并修改格式:

上面这个例子就可以说明这个问题,因为我们删除数据的时候并没有指定排序的字段,所以这条数据可能跟着主键索引走,也可能走从索引。

还有一点就是主数据库和从数据库的表索引可能不一致,有时候主数据库上可能会是只读,所以加了很多索引,从上并没有。

我们可以继续来看下binlog中记录的是什么:

##2.row格式的binlog

我们下面继续测试:

这里可以看到具体很详细的内容没有记录,详细的是记录的删掉的具体哪一行的数据。不是原文sql,这样就避免了主备数据的不一致问题。

##3.mixed格式的binlog

虽然mixed格式的binlog看起来很优秀,但是用的却很少,主要就是因为现在的硬件资源都很充分,不在乎那点空间,尤其是row这种格式的binlog记录的数据很详细,记录了之前的数据,修改的逻辑,还有之后变成的数据样子,很详细有用。

##4.基于语句或行的复制