增加 MySQL wait_timeout的影响


Impact of increasing MySQL wait_timeout

我们目前对MySQL查询有一个低(?)超时,设置为15秒。因此,当我们的服务器处于压力之下时,我们会得到很多超时。不幸的是,我们使用的CMS处理这些超时很差,有时会缓存数据库中的错误结果。我们也完全锁定在这个CMS中,所以我们不能轻易改变。

我一直在考虑提高MySQL的时间限制,看看这是否会改善这种情况。但是,我不确定更改此设置的后果:它是否会导致客户端挂起太长时间,占用资源并最终使系统变慢?

更改此参数后,衡量MySQL性能是更好还是更差的好方法是什么?

此外,如果超时继续发生,处理它们的最佳方法是什么?我正在考虑为每个失败的查询抛出一个异常,然后给我们的用户抛出一个很大的错误标志。我认为"快速失败"而不是显示部分正确的结果可能会更好。

看起来你确定MySQL查询处理超时了,而不是php请求处理。如您所知,这是一个重要的区别。

在拥有天真用户(即大多数用户!)的在线系统中,过早放弃请求并返回错误通常会适得其反。为什么? 因为用户只是再试一次,点击,点击,点击,所以你的服务器容量被烧毁了,提供垃圾而不是有用的结果。

查询超时的 15 秒比平时短。您应该尝试将其增加到一分钟。

我建议您尝试找出应用程序中的哪些查询需要很长时间。可能只有一些需要太长时间。您应该尝试优化这些请求,或使它们稍微难以使用。如果增加超时,这些违规查询将开始显示在慢查询日志中。