在使用 MongoDB 连接池的 MongoDB 数据库支持的 NodeJS 上工作。对打开的连接数量有疑问。
当我们使用以下代码在NodeJS中连接到mongoDB数据库时:
MongoClient.connect(url, {
poolSize: 25
},function(err, db) {
console.log('connected successfully, reuse this db object in the whole application');
}
);
正在观察和测试 mongoDB 数据库的行为,但对此有一些疑问。
问题:
- 连接池是否以最佳方式自动打开和关闭连接,或者程序员是否需要对此进行优化?
- 如果这可以优化怎么办?
最佳答案
请注意,我从四年前 Neil 的慷慨评论中摘录了大部分内容,以便将此问题标记为已回答。
连接池行为
使用连接池时,连接会根据需要自动建立(当不存在空闲连接时)并释放(在一段时间不活动后)。如果需要,您可以通过指定 maxPoolSize
或 minPoolSize
来定义池的缩放限制。默认会创建一个有 5 个连接的连接池。你可以read more about connection pools from the Mongo docs.
If you expect to use a lot of connections then you could "pre-heat" by sending about 20 or so parallel "trivial" requests to the server to force the pool to grow.
优化
您还询问了优化。我同意 Neil 的观点,对于编写良好的查询,每分钟 5,000 个请求应该不是问题。如果需要调优连接池,可以引用Mongo's guide . <强> Indexes但是,通常对性能影响更大。
关于node.js - MongoDB 中的连接池,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50271555/