2017-05-06 184 views
1

当连接到包含多个dbs的mongo服务器时,使用node-mongodb-native驱动程序的更高性能方法是什么?通过父 - 子连接连接到多个数据库时的MongoDB性能

假设我在同一个Mongo服务器上有8个db(db1 ... db8)。我的节点应用程序需要连接到所有8个,具体取决于收到的查询。什么是每分贝这里一个更好的选择,我

1)创建8个独立的连接(1)

OR

2)创建的测试数据库父母一方连接到服务器,然后调用分贝。 db 8次,在该父项下创建8个子连接。正如我在文档(http://mongodb.github.io/node-mongodb-native/2.0/api/Db.html#db)中读到的,所有8个子连接将在同一个插座上运行

有没有人研究过这个问题,或者有一些背景或想法可以帮助我确定正确的操作方法?

回答

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/