深入理解MySQL主从原理
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.7.2 过滤方式

上面提到的read_set和write_set可以理解为一种和字段相对应的位图。它是一种规则,作用之一就是规定哪些字段需要写入Event。

每次写入Event之前,数据都是全字段的行数据(THD::binlog_update_row的record指针指向的值)。但是随后会通过read_set和write_set的设置进行过滤,生成写入Event的行数据,参考pack_row函数。THD::binlog_update_row函数中的这部分代码如下。

这一步,写入Event的行数据就已经被read_set和write_set过滤了。当然,如果参数设置为FULL,则记录全字段。