2014-10-11 114 views
0

這裏是我的「hello world」最小Node.js應用程序連接到本地主機上安裝並運行的數據庫。這個小應用需要0.41秒的精確時間。爲什麼從Node.js連接到MongoDB的速度很慢

var mongo = require('mongodb').MongoClient 
var c = mongo.connect('mongodb://localhost', 
function(err, db){ 
    console.log(db) 
    db.close() 
}) 

與此同時,使用MongoDB的默認的shell,你可以在命令行中執行,稱爲mongo,我可以連接almsot快十倍。它甚至執行一個簡單的命令。

$ time mongo --eval "db" 
MongoDB shell version: 2.4.6 
connecting to: test 
test 

real 0m0.054s 
user 0m0.045s 
sys 0m0.008s 

爲什麼從Node.js連接速度較慢,如何加快速度以達到與原生shell連接速度相同的速度?

+0

你不是在測量兩件事嗎?一方面,您要測量節點需要多長時間需要一個包,設置它並運行連接到MongoDB服務器的函數。另一方面,您要測量MongoDB客戶端連接服務器的時間。我認爲第一個例子中的大部分時間都是開銷,而且這段時間會保持不變。 – JohnP 2014-10-11 18:12:18

回答

1

你在這裏計時的是節點啓動所需的時間,加載mongo模塊,然後才能連接。你會發現,大多數這不是連接到數據庫本身,而是解析,加載和執行整個腳本。

嘗試在mongodb模塊加載後從腳本內部運行計時。