与服务器的连接可以对客户端和服务器之间的流量使用压缩,以减少通过连接发送的字节数。默认情况下,连接是未压缩的,但如果服务器和客户端都支持压缩,则可以压缩。
压缩连接源自客户端,但会影响客户端和服务器端的 CPU 负载,因为双方都执行压缩和解压缩操作。因为启用压缩会降低性能,所以它的好处主要出现在网络带宽较低、网络传输时间占压缩和解压缩操作成本的主要部分以及结果集很大的情况下。
压缩控制适用于客户端程序和参与源/副本复制的服务器与服务器的连接。压缩控制不适用于组复制连接、X 协议连接或FEDERATED
表连接。
这些配置参数可用于控制连接压缩:
客户端程序支持
--compress
命令行选项来指定对服务器连接使用压缩。对于使用 MySQL C API 的程序,启用该 功能的
MYSQL_OPT_COMPRESS
选项mysql_options()
指定对服务器连接使用压缩。对于源/副本复制,启用
slave_compressed_protocol
系统变量指定对与源的副本连接使用压缩。
在每种情况下,当指定使用压缩时,zlib
如果双方都支持,则连接使用压缩算法,否则回退到未压缩的连接。