使用
node-mysql
模块,有两个连接选项 – 单个连接和连接池.设置与MysqL数据库的连接的最佳方法是什么,对所有请求使用单个全局连接,或者为每个请求创建一个连接池并从池中取一个连接池?或者有更好的方法吗?我是否只针对所有请求使用单个共享连接来解决问题?
解决方法
维护整个应用程序的单个连接可能有点棘手.
通常,您希望打开与mysql实例的连接,并等待它建立.
从这一点开始,您可以开始使用数据库(可能启动HTTP(S)服务器,处理请求并根据需要查询数据库.)
问题是连接被破坏时(例如,由于网络错误).
由于您在整个应用程序中使用一个连接,因此必须重新连接到MysqL,并在建立连接时以某种方式对所有查询进行排队.正确实现这样的功能相对困难.
node-MysqL有一个内置的pooler.一个pooler,创建一些连接并将它们保存在池中.每当您想要关闭从池中获取的连接时,pooler会将其返回到池而不是实际关闭它.池上的连接可以在下次打开的呼叫中重复使用.
使用连接池的IMO显然更简单,不应该对性能产生太大影响.