Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySQL - Connexion persistante vs regroupement de connexions

Avoir des connexions persistantes n'implique pas que tous les threads utilisent la même connexion. Il "dit" simplement que vous maintenez la connexion ouverte (contrairement à ouvrir une connexion chaque fois que vous en avez besoin). L'ouverture d'une connexion est une opération coûteuse, donc - en général - vous essayez d'éviter d'ouvrir des connexions plus souvent que nécessaire.

C'est la raison pour laquelle les applications multithread utilisent souvent des pools de connexion. Le pool se charge d'ouvrir et de fermer les connexions et chaque thread qui a besoin d'une connexion en demande une au pool. Il est important de veiller à ce que le thread renvoie la connexion le plus rapidement possible au pool, afin qu'un autre thread puisse l'utiliser.

Si votre application n'a que quelques threads de longue durée qui ont besoin de connexions, vous pouvez également ouvrir une connexion pour chaque thread et la garder ouverte.

L'utilisation d'une seule connexion (comme vous l'avez décrit) équivaut à un pool de connexions avec la taille maximale un. Ce sera tôt ou tard votre goulot d'étranglement car tous les threads devront attendre la connexion. Cela pourrait être une option pour sérialiser les opérations de base de données (les effectuer dans un certain ordre), bien qu'il existe de meilleures options pour assurer la sérialisation.