Con un proxy di database nel mezzo, ci sono due gambe separate per una "connessione":
- In primo luogo, esiste una connessione dall'applicazione al proxy. Quello che hai chiamato "pooling lato applicazione" è questo tipo di connessione. Poiché c'è ancora un sovraccarico associato alla creazione di una nuova istanza di questo tipo di connessione, continuare a utilizzare un pool di connessioni nella tua applicazione è probabilmente una buona idea.
- Secondo, c'è una connessione dal proxy al database. Queste connessioni sono gestite dal proxy. Il numero di connessioni di questo tipo è controllato da una configurazione proxy. Se imposti questa configurazione al 100%, consenti al proxy di utilizzare fino a il
max_connections
del database valore e altri client potrebbero essere affamati di connessioni.
Quindi, quando la tua applicazione vuole usare una connessione, deve ottenere una connessione dal suo pool locale. Quindi, il proxy deve associarlo a una connessione al database. Il proxy riutilizzerà le connessioni al database ove possibile (questa tecnica è anche chiamata multiplexing ).
Oppure, citando i documenti ufficiali:"Puoi aprire molte connessioni simultanee al proxy e il proxy mantiene un numero minore di connessioni aperte all'istanza database o al cluster. In questo modo si riduce ulteriormente il sovraccarico di memoria per le connessioni sul server del database. Questo la tecnica riduce anche la possibilità di errori di "troppe connessioni".