我们有一个实时服务器,它受到严重影响,因此我们正努力优化一切可能的东西。我们在其上运行了 MySQLTuner 脚本 (http://mysqltuner.com/) 告诉我们应该为 wait_timeout 和 interactive_timeout 设置小于 28800 的值。1 到 28800 之间有很多可能的数字可供选择!
我在 MySQL 文档中查找了这些变量的含义,但只提供了非常基本的描述,并没有提供选择值的指导。
是否存在一个被视为普遍接受的最佳实践的值?如果选择的值太低,可能产生什么结果?
谢谢,
巴特。
答案1
wait_timeout 是 MySQL 在非交互式连接上关闭连接之前等待的不活动秒数。interactive_timeout 相同,但适用于交互式会话(mysql shell)
将值设置得太低可能会导致连接意外断开,特别是当您在 Web 应用程序中使用持久连接时。
如果设置的值过高,可能会导致陈旧的连接保持打开状态,从而阻止对数据库的新访问。
在我看来,对于 wait_timeout,你会希望这个值尽可能低,而不会影响可用性和性能。你可以从 10 秒开始,如果发现性能下降,可以逐渐增加它。
对于 interactive_timeout,更改此值实际上不会增加或减少应用程序的性能。