当前位置: 首页 > 面试题库 >

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

马臻
2023-03-14
问题内容

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

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

(来自MySQL Forge
Wiki

最明显的利弊是

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

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


问题答案:

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

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

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

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

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

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



 类似资料:
  • 问题内容: 我知道他们两个都禁用了Nagle的算法。 我什么时候应该/不应该使用它们中的每一个? 问题答案: 首先,不是所有人都禁用Nagle的算法。 Nagle的算法用于减少有线中更多的小型网络数据包。该算法是:如果数据小于限制(通常是MSS),请等待直到收到先前发送的数据包的ACK,同时累积用户的数据。然后发送累积的数据。 这将对telnet等应用程序有所帮​​助。但是,在发送流数据时,等待A

  • 问题内容: 在该类中,有两个字符串,和。 有什么不同?我什么时候应该使用另一个? 问题答案: 如果你的意思是和则: 用于在文件路径列表中分隔各个文件路径。考虑在上的环境变量。您使用a分隔文件路径,因此在上将是;。 是或用于拆分到特定文件的路径。例如在上,或

  • 问题内容: 在集成我以前从未使用过的Django应用程序时,我发现了用于定义类中函数的两种不同方式。作者似乎非常有意地使用了它们。第一个是我自己经常使用的: 另一个是我不使用的,主要是因为我不知道何时使用它,以及什么用途: 在Python文档中,装饰器的解释如下: 类方法将类作为隐式第一个参数接收,就像实例方法接收实例一样。 所以我想指的是自己(而不是实例)。我不完全理解为什么会这样,因为我总是可

  • 问题内容: 有人可以为我阐明使用MySQLi代替MySQL的优点和缺点吗?在某些情况下我不应该使用MySQLi?为了使用MySQLi,是否需要对服务器进行其他配置?例如,是否需要升级Apache或PHP以支持MySQLi? 问题答案: 为什么应使用MySQLi扩展而不是MySQL扩展的原因很多: MySQLi为您提供准备好的语句-一种将数据发送到MySQL并保护您免受SQL注入的安全方法。 仅此一

  • 问题内容: 我看过各种文章,但我仍然不知道为什么不应该使用它。请让我知道您的想法。 问题答案: 我发现有必要在错误的设计中使用instanceof提示。可以肯定的是,将会出现一个大型,复杂的开关风格的构造。在我看到的其他大多数情况下,我们应该使用多态而不是instanceof。请参阅策略模式。(相关的使用示例) 我唯一需要使用的是实现时。

  • 问题内容: 我在阅读《 Swift编程语言》指南 时遇到了一个叫做的函数,但我仍然想知道为什么以及何时需要实现它,因为我们实际上不需要管理内存。 问题答案: 不需要实现该方法,但是如果需要在取消分配对象之前进行一些操作或清理,则可以使用它。 在苹果的文档包括例如: 因此,无论何时将玩家从游戏中移除,其硬币都会退还至银行。