需要Node.JS + MySQL连接池吗?

时间:2013-09-25 16:33:59

标签: mysql node.js node-mysql

使用node-mysql模块,有两个连接选项 - 单个连接和连接池。设置与MySQL数据库的连接的最佳方法是什么,对所有请求使用单个全局连接,或者为每个请求创建一个连接池并从池中取一个连接池?或者有更好的方法吗?我是否只为所有请求使用一个共享连接来解决问题?

1 个答案:

答案 0 :(得分:6)

维护整个应用程序的单个连接可能有点棘手。

通常,您希望打开与实例的连接,并等待它建立。

从这一点开始,您可以开始使用数据库(可能启动HTTP(S)服务器,处理请求并根据需要查询数据库。)

问题是连接被破坏时(例如,由于网络错误)。 由于您在整个应用程序中使用一个连接,因此必须重新连接到 MySQL ,并在建立连接时以某种方式对所有查询进行排队。正确实现这些功能相对困难。

node-mysql有一个内置的pooler。一个pooler,创建一些连接并将它们保存在池中。每当您想要关闭从池中获取的连接时,pooler会将其返回到池而不是实际关闭它。池上的连接可以在下次打开的呼叫中重复使用。

使用连接池的IMO显然更简单,不应该对性能产生太大影响。