nodejs:数据库连接成本重要吗?

nodejs: Does database connection cost matter?

1.synchronous

mongo.conn(function(err,db){
 db.collection('pet').find({},function(err, result){
    db.collection('petviewcount').updateOne({}, {$inc:{viewcount:+1}}, function(err, result){
        // db.collection('more').find({},function(err, result){
            // db.collection('insert').find({},function(err, result){
                // db.collection('update').find({},function(err, result){
                db.close();
                cb(err, result);
    });                    
});

});

2.asynchronous

mongo.conn(function(err,db){
    db.collection('pet').find({},function(err, result){
                db.close();
                cb(err, result);
    });
});
countUp();
// more + insert + update()

function countUp(){
  mongo.conn(function(err,db){
    db.collection('petviewcount').updateOne({}, {$inc:{viewcount:+1}}, function(err, result){
        db.close();
    });
  });
}


据我所知,在向服务器(节点)发送单个请求时
第一个是节省服务器和数据库之间的连接成本。
第二个比前一个反应更快。

在现实世界中哪个更好?
( 1. 小数据延迟是可以接受的
2.不知道如何处理服务器和数据库之间的性能瓶颈。 )

就性能而言,重新使用连接比在每次请求时都创建一个新连接要好,因为建立连接需要资源和开销。

我认为他的方法更好:

//global connection reference
var dbConnection;

//remember to wait for connection established before using the connection
mongo.conn(function(err,db){
  dbConnection = db;
  start();  //now you can run all query with one connection
});

function start() {
  findPet();
  countUp();
}

function findPet() {
  dbConnection.collection('pet').find({},function(err, result){
  });
}

function countUp(){
  dbConnection.collection('petviewcount').updateOne({}, {$inc:{viewcount:+1}}, function(err, result){
    });
}