一尘不染

什么时候应该使用MySQL压缩协议?

mysql

我了解到MySQL可以压缩服务器和客户端之间的通信。

如果客户端和服务器均支持zlib压缩,并且客户端请求压缩,则使用压缩。

(来自MySQL Forge
Wiki

最明显的利弊是

  • 优点:有效载荷尺寸减小
  • 缺点:增加了计算时间

那么,只要我能负担得起具有足够规格的服务器,就应该启用压缩协议吗?我还要考虑其他因素吗?


阅读 498

收藏
2020-05-17

共1个答案

一尘不染

除了网络带宽和数据库服务器及其客户端之间的延迟之外,性能优势将在很大程度上取决于您要发送的结果集的大小。

结果集越大,等待时间越大或带宽越小,您越有可能看到压缩的好处。

您的最高服务水平仅限于最小的瓶颈。因此,您需要分析有关网络和CPU资源的当前位置。

最优化的数据库服务器100%的时间会占用其100%的CPU,否则您会因为坐在那里的处理器无法执行任何操作而浪费了计算资源。当然,您不希望它达到101%,因此您的目标范围远低于100%。但是,我的观点是,如果在达到CPU瓶颈之前有足够的净空,并且结果集很大,网络是一个因素,那么请打开压缩功能。CPU周期很便宜,尤其是闲置的周期(您需要支付电费和散热费)。

如果您为带宽付费,那么用CPU占用带宽进行交易就很容易了,即使您还没有达到带宽瓶颈,更快的速度和更高的服务水平也是值得的。

不要忘记,客户端还必须花费CPU周期来解压缩数据。不是主要问题,但仍然是一个因素。通常,当今的CPU比当今的网络更快。

2020-05-17