我正在使用MongoDB的node-mongodb-native驱动程序来编写一个网站.

我有一些关于如何管理连接的问题:

  1. 对于所有请求,只使用一个MongoDB连接就足够了吗?是否存在任何性能问题?如果没有,我可以设置一个全局连接以在整个应用程序中使用吗?

  2. 如果不是,那么在请求到达时打开一个新连接,并在处理请求时关闭它是否好?打开和关闭连接是否昂贵?

  3. 我应该使用全局连接池吗?我听说驱动程序有一个本地连接池.这是个好 Select 吗?

  4. 如果我使用连接池,应该使用多少个连接?

  5. 还有什么我应该注意的吗?

推荐答案

The primary committer to node-mongodb-native says:

你打开do MongoClient.当你的应用启动并重新使用时连接一次

直接回答你的问题,reuse the db object that results from 100.这将为您提供共享,并且与在每个db操作上打开/关闭连接相比,速度将显著提高.

Node.js相关问答推荐

当建议在第二代上运行云功能时,现在是否有新的Firestore AdminClient可供使用?

如何使用NodeJS处理来自请求的单个或多个文件?

关于Node.js中的AES加密库的问题

Webpack:如何避免导出函数的重命名?

为什么我的过滤器无法在我在下面编写的 Google Analytics 4 应用程序脚本代码中工作?我该如何修复它?

无法使用 Express 设置会话 cookie 的过期日期

如何使用mongoose引用不在项目中的模型

Typescript 正则表达式:过滤器返回空

为什么要加密 CSRF 令牌?

在系统启动时启动本地 node 服务器

获取数组的至少一个元素包含子字符串的文档

为什么我的react 表单不能正常工作?

使用 $in 查询时,如何获取 mongoDB 中每个唯一 ID 的 n 个文档?

无法更新MongoDB中的文档:";伯森场';writeConcern.w';是错误的类型';数组'&引用;

Puppeteer 错误:未下载 Chromium 修订版

如何在 Mongoose 模式中设置数组大小限制

安全沙箱并执行用户提交的 JavaScript?

已安装全局 NPM 包但未找到命令

create-react-app,安装错误(找不到命令)

npm install packagename --save-dev 不更新 package.json