【问题标题】:MongoDB Performance when connecting to multiple databases via parent-child connections通过父子连接连接到多个数据库时的 MongoDB 性能
【发布时间】:2023-03-10 14:15:01
【问题描述】:

当连接到包含多个 dbs 的 mongo 服务器时,使用 node-mongodb-native 驱动程序的性能更高的方法是什么。

假设我在同一个 Mongo 服务器上有 8 个 dbs(db1...db8)。我的节点应用程序需要根据收到的查询连接到所有 8 个。对我来说,这里有什么更好的选择

1) 创建 8 个单独的连接(每个 db 1 个)

2) 在 test db 上创建一个到服务器的父连接,然后调用 db.db 8 次以在该父下创建 8 个子连接。正如我在文档中看到的(http://mongodb.github.io/node-mongodb-native/2.0/api/Db.html#db),所有 8 个子连接都将在同一个套接字上运行

有没有人对此进行过研究或有一些背景或想法可以帮助我确定正确的行动方案?

【问题讨论】:

    标签: node.js mongodb node-mongodb-native


    【解决方案1】:
    1. MongoDB 并发的粒度如何?:这取决于版本。由于 MongoDB 3 许多操作锁定在文档上。早期版本将对整个集合应用锁定。某些操作仍会锁定整个实例(也称为服务器)。这意味着有时一个操作(可能涉及多个数据库的操作)会阻塞整个实例,影响其中的所有数据库。 https://docs.mongodb.com/manual/faq/concurrency/#how-granular-are-locks-in-mongodb

    2. 线程模型:node.js 是异步的,而 MongoDB 不是。 MongoDB 将使用每个套接字一个线程。如果您认为操作相互阻塞,则应保留单独的连接池。 http://mongodb.github.io/node-mongodb-native/2.2/reference/faq/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-09-24
      • 1970-01-01
      • 2011-06-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多