4.2.6 连接压缩控制

与服务器的连接可以对 Client 端和服务器之间的流量进行压缩,以减少通过连接发送的字节数。默认情况下,连接是未压缩的,但是如果服务器和 Client 端都支持压缩,则可以压缩连接。

压缩连接起源于 Client 端,但是会影响 Client 端和服务器端的 CPU 负载,因为双方都执行压缩和解压缩操作。因为启用压缩会降低性能,所以其好处主要是在网络带宽较低时出现的,网络传输时间主导着压缩和解压缩操作的成本,结果集很大。

压缩控制适用于 Client 端程序和参与主/从复制的服务器与服务器的连接。压缩控制不适用于组复制连接,X 协议连接或FEDERATEDtable 的连接。

这些配置参数可用于控制连接压缩:

  • Client 端程序支持--compress命令行选项,以指定对服务器连接的压缩方式。

  • 对于使用 MySQL C API 的程序,启用mysql_options()函数的MYSQL_OPT_COMPRESS选项可指定对服务器连接的压缩方式。

  • 对于主服务器/服务器复制,启用slave_compressed_protocol系统变量可指定对从服务器到主服务器的连接使用压缩。

在每种情况下,当指定使用压缩时,如果双方都支持,则连接使用zlib压缩算法,否则返回到未压缩的连接。