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

Comment pgbouncer se comporte-t-il lorsque la mise en commun des transactions est activée et qu'une seule instruction est émise ?

https://pgbouncer.github.io/usage.html

https://pgbouncer.github.io/config.html#description

Dans votre cas, si la transaction n'est jamais terminée (validée, annulée), elle atteindra idle_transaction_timeout (désactivé par défaut) et idle in transaction la connexion reviendra au pool, permettant aux autres de se connecter. Si vous avez la valeur par défaut, à un moment donné, tout le pool de connexions sera rempli, donc new sera rejeté. À partir de ce moment, vos déclarations uniques ne fonctionneront pas - elles attendront une connexion gratuite qui n'apparaîtra jamais.

En ce qui concerne les instructions simples - elles ne sont pas "transformées en transactions par pgbounce" ni "dans le regroupement de transactions, chaque commande est une transaction en soi". Ceci est contrôlé par AUTOCOMMIT pour chaque session.