为什么从Node.js连接到MongoDB的速度很慢
问题描述:
这里是我的“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连接速度相同的速度?
答
你在这里计时的是节点启动所需的时间,加载mongo模块,然后才能连接。你会发现,大多数这不是连接到数据库本身,而是解析,加载和执行整个脚本。
尝试在mongodb
模块加载后从脚本内部运行计时。
你不是在测量两件事吗?一方面,您要测量节点需要多长时间需要一个包,设置它并运行连接到MongoDB服务器的函数。另一方面,您要测量MongoDB客户端连接服务器的时间。我认为第一个例子中的大部分时间都是开销,而且这段时间会保持不变。 – JohnP 2014-10-11 18:12:18