4

使用该node-mysql模块,有两个连接选项 - 单个连接和连接池。建立与 MySQL 数据库的连接、对所有请求使用单个全局连接或创建连接池并为每个请求从池中获取一个连接的最佳方法是什么?还是有更好的方法来做到这一点?对所有请求仅使用一个共享连接会遇到问题吗?

4

1 回答 1

6

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

通常,您想打开到您的实例的连接,并等待它建立。

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

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

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

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

于 2013-09-25T17:42:14.337 回答