- 深入理解MySQL主从原理
- 高鹏
- 180字
- 2021-04-16 16:29:33
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函数中的这部分代码如下。
![](https://epubservercos.yuewen.com/A01218/19823444008569806/epubprivate/OEBPS/Images/txt002_57.jpg?sign=1739582241-zjOIzzAzGYDtdWTk7QlWUvjA2D2zK98m-0-78299fa880b31ab9e83033b35be4e75b)
这一步,写入Event的行数据就已经被read_set和write_set过滤了。当然,如果参数设置为FULL,则记录全字段。