问题
我正在开发一个使用 Apache Tomcat 中的连接池与 MySQL 通信的应用程序。我想知道为什么您要使用比默认值 28,800 秒更小的wait_timeout ?我看到减少等待超时有很多缺点,但有什么好处呢?
背景
参数wait_timeout定义为
服务器在关闭非交互式连接之前等待其活动的秒数。
问题
如果我将 wait_timeout 设置得太小,那么 MySQL 会终止在我的 Web 应用程序正在使用的连接池中仍然有效的连接。在我的情况下,我是唯一一个在任何时候都在使用该应用程序的人,所以当我不测试它时,数据库连接自然会空闲。我可以通过简单地将 MySQL 上的 wait_timeout 扩展到非常大的值来解决这个问题,这样即使我离开办公桌 2 周,池也不会返回死连接。
问题
- 为什么有人想要更短的等待时间?
- 存储连接的开销有那么糟糕吗?
- 尽管我了解连接池可以减轻创建连接的开销,但将空闲连接保留在内存中是否是个问题?