Documentation Home

17.5.1.17 JSON 文档的复制

在 MySQL 8.0 之前,对 JSON 列的更新总是作为完整文档写入二进制日志。在 MySQL 8.0 中,可以记录对 JSON 文档的部分更新(请参阅 JSON 值的部分更新),这样效率更高。日志记录行为取决于所使用的格式,如下所述:

基于语句的复制。  JSON 部分更新始终记录为部分更新。使用基于语句的日志记录时不能禁用此功能。

基于行的复制。  默认情况下,JSON 部分更新不记录,而是记录为完整文档。要启用部分更新的日志记录,请设置 binlog_row_value_options=PARTIAL_JSON. 如果复制源设置了此变量,则从该源接收的部分更新将由副本处理和应用,而不管副本自己的变量设置如何。

运行 MySQL 8.0.2 或更早版本的服务器无法识别用于 JSON 部分更新的日志事件。因此,当从运行 MySQL 8.0.3 或更高版本的服务器复制到此类服务器时,binlog_row_value_options必须通过将此变量设置为 ''(空字符串)在源上禁用。有关详细信息,请参阅此变量的说明。