2017-05-06 137 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/