● RC与ROW配置组合
我们从RC+MIXED配置组合测试的内容,可以看到其全部转换成了行模式登记二进制日志文件内容,那么此模式就没有多阐述的地方,我们错开的方式,察看下编号为:4的SQL二进制日志信息,如图:
备注:
编号为4的SQL中涉及不确定性函数:UUID(),WHERE条件为:范围扫描,真实记录的二进制日志内容,都是固定的字段属性值,和真实被更新到的记录。
● RR与 STATEMENT配置组合
请读者注意标注红线的地方,对于存在随机数函数,以及不确定性的UUID函数,二进制日志文件都是原样登记的,含有这些不确定性函数的SQL再次执行,将无法获得相同的值,这会给mysql的复制带来麻烦,以及使用二进制日志进行数据恢复的时候。
● RR与 MIXED配置组合
此部分我们重点看2部分的日志,一部分是选择以命令行模式登记的二进制日志,另外一类是选择以行模式登记的二进制日志,第一类,如图:
请读者再回味下上一个节点:RR+STATEMENT组合产生的二进制日志,对比我们会发现,其都是以基于命令行模式,但是RR+MIXED组合配置,则增加了一些内容,例如图中红色字段部分,为使大家看得更详细,关于如何处理随机函数的问题,以确保在二进制日志用于恢复的时候,确保SQL产生的记录值是永恒固定的,再单独截图一张:
接下来我们再看下,对于无法通过添加类似Oracle的hint内容,解决不确定性函数登记到二进制日志文件中的问题,先看二进制日志截图:
对于mysqld没有支持或无法通过添加类似hint模式解决的不确定性问题,RR+MIXED模式下,二进制日志登记将会以行模式登记二进制日志,而解决不确定性问题。
● RR与 ROW配置组合
对于RR+ROW组合配置,所有DML操作的SQL日志都是以基于行模式登记,为此我们只看编号为:1、4两条SQL的二进制日志内容,编号为1的SQL对应的二进制日志内容,如图:
接下来我们再看下编号为:4的SQL对应的二进制日志内容,如图: