当复制拓扑中的主服务器启用二进制日志事务压缩但其从服务器未启用二进制日志事务压缩时,该从服务器接收压缩的事务有效负载并将其压缩后写入其中继日志。它解压缩事务负载以应用事务,然后将未压缩的事务负载写入其自己的二进制日志(如果有的话)。任何下游从站都将接收未压缩的事务有效负载。
当复制拓扑中的主服务器未启用二进制日志事务压缩但其从属服务器却启用了二进制日志事务压缩时,如果从属服务器具有二进制日志,则它将在应用负载后压缩事务负载,并将压缩后的事务负载写入其二进制日志。任何下游从站都将接收压缩的事务负载。
当MySQL服务器实例没有二进制日志时(如果它是MySQL 8.0.20的发行版),则无论binlog_transaction_compression的值如何,它都可以接收,处理和显示压缩的事务有效负载。这样的服务器实例接收到的压缩的事务有效负载以其压缩状态写入中继日志,因此它们间接受益于复制拓扑中其他服务器执行的压缩。
MySQL 8.0.20之前的版本中的从属服务器无法从启用了二进制日志事务压缩的主服务器复制。 MySQL 8.0.20或更高版本的从属服务器可以在不支持二进制日志事务压缩的早期版本中从主服务器进行复制,并且在将从该主服务器接收的事务写入自己的二进制日志时可以对其进行压缩。