Sono l'autore di pg-promise .
Esistono diversi livelli di ottimizzazione per le comunicazioni del database. Il più importante è ridurre al minimo il numero di query per richiesta HTTP, perché l'IO è costoso, così come il pool di connessioni.
- Se devi eseguire più di una query per richiesta HTTP, utilizza sempre le attività, tramite il metodo attività .
- Se la tua attività richiede una transazione, eseguila come transazione, tramite il metodo tx .
- Se è necessario eseguire più inserimenti o aggiornamenti, utilizzare sempre operazioni su più righe. Vedi Inserimento a più righe con pg-promise e Aggiornamenti a più righe PostgreSQL in Node.js .
node-postgres ha iniziato a utilizzare pg-pool dalla versione 6.x, mentre pg-promise rimane nella versione 5.x che utilizza l'implementazione interna del pool di connessioni. Ecco il motivo .
La mia lunga pratica in quest'area suggerisce:se non riesci a inserire il tuo servizio in un pool di 20 connessioni, non verrai salvato scegliendo più connessioni, dovrai invece correggere la tua implementazione. Inoltre, superando i 20 inizi a sovraccaricare ulteriormente la CPU e ciò si traduce in un ulteriore rallentamento.
La dimensione dei dati non ha nulla a che fare con la dimensione del pool. In genere utilizzi una sola connessione per un singolo download o caricamento, indipendentemente dalle dimensioni. A meno che la tua implementazione non sia sbagliata e finisci per utilizzare più di una connessione, devi risolverlo, se vuoi che la tua app sia scalabile.
Attenderà la prossima connessione disponibile.
Vedi anche: