#### 17.5.1.17 Replication of JSON Documents

 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](json.html#json-partial-updates)), 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`](replication-options-binary-log.html#sysvar_binlog_row_value_options). 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.

