是否应该为所有请求使用单个 Mongoose 连接?或者每个请求都有不同的连接?

Posted

技术标签:

【中文标题】是否应该为所有请求使用单个 Mongoose 连接?或者每个请求都有不同的连接?【英文标题】:Should a single Mongoose connection be used for all requests? Or different connection for each request? 【发布时间】:2019-05-25 07:36:16 【问题描述】:

我来自 SQL 数据库,我想知道与 MongoDB 的单/多连接是否与 SQL 数据库有任何不同。

使用这些方法是否存在任何性能或安全问题?

【问题讨论】:

【参考方案1】:

在代码方面,只连接一次数据库是没有问题的。但是,您可以做的是通过在连接期间指定 poolSize 来增加 mongoose 保持打开的套接字/连接的数量。见这里mongoose connection doc。默认值为 5。例如,如果您有一些慢速查询阻塞了许多快速查询,这确实有意义。此外,有时创建多个数据库连接以将包/模型彼此分开是有意义的,但您应该注意不要创建任何这样的竞争条件。最后,根据您的规范,使用单个连接写入和另一个连接从相同或副本/从属数据库读取以提高性能也是有意义的。

【讨论】:

以上是关于是否应该为所有请求使用单个 Mongoose 连接?或者每个请求都有不同的连接?的主要内容,如果未能解决你的问题,请参考以下文章

为单个连接禁用 SSLHandshakeException

如何通过查询字符串轻松实现连接

如何使用 Mongoose 为单个帖子保存多个类别

如何根据现有的 mongoose 查询检查单个文档?

如何在 Mongoose/Node.js 中同时保存多个文档?

Express/Mongoose - 错误:传入的参数必须是 12 个字节的单个字符串