1

我有一个使用 Node.js 并连接到 Oracle 数据库的 Web 应用程序。

目前,我在 Node 和 DB 之间的架构使用一个连接,该连接保持打开状态。问题是某些查询需要很长时间才能返回,因此会阻塞后续查询,直到第一个查询返回。

如果我在每个请求上打开一个新连接,则不会发生这种情况,并且后续查询将在第一个(长)查询之前返回。

问题是什么是最佳实践?每个请求是否值得在回调时关闭与数据库的新连接,我应该优先考虑我知道需要花费大量时间来处理自己的连接的查询,还是单个连接正确?

非常感谢您的想法。

4

1 回答 1

3

您可以使用generic-pool模块,这是一个通用资源池来重用昂贵的资源,例如数据库连接

一般的想法是您创建一个具有一定数量的连接(默认为 10)的连接池。连接被重用,它们将保留一定的最大空闲时间(默认为 30 秒)。

我将此模块用于生产中的 Oracle 数据库,到目前为止没有发现任何问题。

于 2013-10-17T08:36:31.130 回答