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.我不知道如何处理服务器和数据库之间的性能瓶颈。 )
答案 0 :(得分:1)
为了提高性能,重新使用连接比在每个请求上创建新连接更好,因为建立连接需要资源和开销。
我认为他是一个更好的方法:
//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){
});
}