PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come si comporta pgbouncer quando il pool di transazioni è abilitato e viene emessa una singola istruzione?

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

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

Nel tuo caso, se la transazione non viene mai terminata (impegnata, annullata) raggiungerà idle_transaction_timeout (impostazione predefinita disabilitata) e idle in transaction la connessione tornerà al pool, consentendo ad altri di connettersi. Se hai il valore predefinito per esso, a un certo punto tutto il pool di connessioni verrà riempito, quindi il nuovo verrà rifiutato. Da questo punto le tue singole dichiarazioni non funzioneranno:aspetteranno una connessione gratuita che non apparirà mai.

Per quanto riguarda le singole dichiarazioni - non vengono "trasformate in transazioni da pgbounce" né "nel pool di transazioni, ogni comando è una transazione di per sé". Questo è controllato da AUTOCOMMIT per ogni sessione.