![深入理解MySQL主从原理](https://wfqqreader-1252317822.image.myqcloud.com/cover/513/37423513/b_37423513.jpg)
上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函数中的这部分代码如下。
![](https://epubservercos.yuewen.com/A01218/19823444008569806/epubprivate/OEBPS/Images/txt002_57.jpg?sign=1739285072-h1YTAEkTu3f97pWNbchynPJghHcv2Cj0-0-0f8b377bd58380cfe55bf84ef1926bce)
这一步,写入Event的行数据就已经被read_set和write_set过滤了。当然,如果参数设置为FULL,则记录全字段。