【发布时间】:2014-06-17 10:11:14
【问题描述】:
我正在开发一个连接到 MySQL 服务器的 node.js 应用程序。不过,以下内容可能不是特定于 node.js 的。
目前,我的代码在应用程序启动时初始化 MySQL 连接,然后每次需要进行查询时都会使用该连接。
我的方法面临的问题是连接往往会在一段时间后关闭。我不确定那段时间有多长,但似乎至少有几个小时。我也不确定是否是由于不活动造成的。
无论如何,我想知道长期管理 MySQL 连接的更好方法是什么。在可能的方法中,我考虑过:
只需在每次查询之前检查连接是否仍然有效。如果没有,请在执行查询之前重新连接。
池化 MySQL 连接。这对于一个相当小的应用程序来说会不会过大?
定期(每隔一小时左右)执行一次查询,以防由于不活动而发生这种情况。但是,这并不能纠正可能不是由于不活动引起的情况。
在查询之前/之后连接和断开连接。由于涉及开销,这是个坏主意。
如您所想,我倾向于使用前两个选项之一。哪个选项最可靠和最有效?
【问题讨论】:
-
池化不是“矫枉过正”。用它。别人写的(万岁!有几个节点实现),它只是工作,而不需要担心实际的连接管理(例如“保持连接活跃”),而不是“释放到池”。