Before MySQL 8.0, an update to a JSON column was always written to the binary log as the complete document. In MySQL 8.0, it is possible to log partial updates to JSON documents (see Partial Updates of JSON Values), which is more efficient. The logging behavior depends on the format used, as described here:
Statement-based replication. JSON partial updates are always logged as partial updates. This cannot be disabled when using statement-based logging.
Row-based replication.
JSON partial updates are not logged as such by default, but
instead are logged as complete documents. To enable logging of
partial updates, set
binlog_row_value_options=PARTIAL_JSON
.
If a replication source has this variable set, partial updates
received from that source are handled and applied by a replica
regardless of the replica's own setting for the variable.
Servers running MySQL 8.0.2 or earlier do not recognize the log
events used for JSON partial updates. For this reason, when
replicating to such a server from a server running MySQL 8.0.3
or later, binlog_row_value_options
must be
disabled on the source by setting this variable to
''
(empty string). See the description of
this variable for more information.