安全地保持MySQL连接的活跃性

时间:2014-04-30 22:25:34

标签: mysql connection-timeout

我正在处理连接到MySQL服务器的nod​​e.js应用程序。但是,以下可能不是node.js特有的。

目前,我的代码在应用程序启动时初始化MySQL连接,然后每次需要进行查询时都会使用该连接。

我面临的问题是,在一段时间后连接趋于关闭。我不知道这段时间有多长,但似乎至少需要几个小时。我也不确定它是否由不活动引起。

无论如何,我想知道什么是长期管理MySQL连接的更好方法。在可能的方法中,我考虑过:

  • 只需在每个查询之前检查以查看连接是否仍然有效。如果没有,请在执行查询之前重新连接。

  • 汇集MySQL连接。对于一个相当小的应用程序来说,这会有点过分吗?

  • 定期(每小时左右)执行查询,以防由于不活动而发生。但是,这并不能解决因不活动而导致的情况。

  • 在查询之前/之后连接和断开连接。由于涉及的开销,这是个坏主意。

我倾向于使用前两个选项之一,正如您可能想象的那样。哪个选项最可靠,最有效?

1 个答案:

答案 0 :(得分:4)

Node.js的最佳做法似乎是使用连接池。请参阅Node.js MySQL Needing Persistent Connection

空闲连接的默认超时为28800秒,可使用wait_timeout变量进行配置。见http://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html#sysvar_wait_timeout