为什么使用基于混合的复制为MySQL

我正在configurationMySQL复制的过程,并打算使用基于行的复制,但我也读了基于混合的复制。

这是默认的基于声明的地方,然后在某些情况下( http://dev.mysql.com/doc/refman/5.1/en/binary-log-mixed.html),MySQL将切换到基于行。

当列表切换到基于行的时候,列表将被放弃。

我的问题是:

有没有使用混合? 如果是的话,你为什么select只使用一个或另一个呢?

提前致谢

有没有使用混合?

我敢打赌,很多人都使用混合模式复制,因为根据MySQL参考手册 ,这是默认的很长一段时间:

从MySQL 5.1.12到MySQL 5.1.28,混合格式是默认的。 从MySQL 5.1.29开始,基于语句的格式是默认的。

MySQL Performance Blog讨论了不同复制方法的不同问题。

所以,似乎MySQL一直试图在5.1.x系列中的基于混合模式,基于语句的和基于行的复制之间进行切换,这是令人不安的。

我正在阅读来自O'Reilly的高性能MySQL第二版 。 它有一个复制的伟大篇章,非常值得一读。 我的许多问题已经在一个小时的阅读中得到解答。 你可以阅读第8章中的一些章节。 357 :

因为这两种格式都不适合每种情况,所以MySQL 5.1会dynamic地在基于语句和基于行的复制之间进行切换。 默认情况下,它使用基于语句的复制,但是当它检测到无法用语句正确复制的事件时,它将切换到基于行的复制。 您还可以通过设置binlog_format会话variables来根据需要控制格式。