我正在处理连接到MySQL服务器的node.js应用程序。但是,以下可能不是node.js特有的。
目前,我的代码在应用程序启动时初始化MySQL连接,然后每次需要进行查询时都会使用该连接。
我面临的问题是,在一段时间后连接趋于关闭。我不知道这段时间有多长,但似乎至少需要几个小时。我也不确定它是否由不活动引起。
无论如何,我想知道什么是长期管理MySQL连接的更好方法。在可能的方法中,我考虑过:
只需在每个查询之前检查以查看连接是否仍然有效。如果没有,请在执行查询之前重新连接。
汇集MySQL连接。对于一个相当小的应用程序来说,这会有点过分吗?
定期(每小时左右)执行查询,以防由于不活动而发生。但是,这并不能解决因不活动而导致的情况。
在查询之前/之后连接和断开连接。由于涉及的开销,这是个坏主意。
我倾向于使用前两个选项之一,正如您可能想象的那样。哪个选项最可靠,最有效?
答案 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