Question

Sur NodeJs avec Node-Mysql, si je créez une connexion pour le service comme ceci:

var client = mysql.createClient({
    user: 'user',
    password: 'pass'
}); // Create a new mysql Client
io.sockets.on("connection", function (user)) // when a user enters
{
    result = client.query('check user'); //check for user on DB
    if (result) {
        user.on('do stuff', function (data) // set to do something on ask
        {
            client.query('some stuff'); //run the mysql client to work
        });
    } else {
        user.disconnect();
    }
});
}

ou pour chaque utilisateur comme ceci:

io.sockets.on("connection", function (user)) // when a user enters
{
    var client = mysql.createClient({
        user: 'user',
        password: 'pass'
    }); // Create a new mysql Client when the users enters
    result = client.query('check user'); //check for user on DB
    if (result) {
        user.on('do stuff', function (data) // set to do something on ask
        {
            client.query('some stuff'); //run the mysql client to work
        });
        user.on('disconnect', function (data) {
            client.close();
        });
    } else {
        user.disconnect();
        client.close();
    }
}

Ce que je demande, c'est:

  • Le premier est-il plus rapide car la connexion est toujours ouverte et sur la seconde qu'elle doit créer chaque fois qu'un utilisateur se connecte?
  • Le premier est-il plus lent parce que si de nombreux utilisateurs demandent des requêtes, il ne fait qu'une seule à l'époque, et sur le second, chacun a son propre client et peut établir plusieurs connexions en même temps?
  • Le deuxième est-il plus lourd pour le serveur de nœuds et pour le MySQL car il doit avoir 1 client pour chaque utilisateur?
  • Le premier est-il plus lourd car il ne ferme jamais la connexion MySQL, et après certaines requêtes peuvent avoir des fuites de mémoire?
  • Ou dois-je créer et fermer une connexion MySQL pour chaque requête?

PS: L'application connectée au serveur de nœuds aura un grand nombre d'utilisateurs, connecté pendant une longue période, mais aura un très faible nombre de requêtes, mais les utilisateurs demanderont probablement des requêtes en même temps.

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
scroll top