Jestem autorem pg-promise .
Istnieje kilka poziomów optymalizacji komunikacji z bazą danych. Najważniejszym z nich jest zminimalizowanie liczby zapytań na żądanie HTTP, ponieważ IO jest drogie, podobnie jak pula połączeń.
- Jeśli musisz wykonać więcej niż jedno zapytanie na żądanie HTTP, zawsze używaj zadań za pomocą metody zadanie .
- Jeśli Twoje zadanie wymaga transakcji, wykonaj ją jako transakcję za pomocą metody tekst .
- Jeśli potrzebujesz wykonać wiele operacji wstawiania lub aktualizowania, zawsze używaj operacji na wielu wierszach. Zobacz Wkładka wielorzędowa z pg-promise i Aktualizacje wielowierszowe PostgreSQL w Node.js .
node-postgres zaczął używać pg-pool od wersji 6.x, podczas gdy pg-promise pozostaje w wersji 5.x, która używa implementacji wewnętrznej puli połączeń. Oto powód, dla którego .
Moja długa praktyka w tym obszarze sugeruje:jeśli nie możesz zmieścić swojej usługi w puli 20 połączeń, nie zostaniesz uratowany przez przejście na więcej połączeń, zamiast tego będziesz musiał naprawić implementację. Ponadto, przekraczając 20, zaczynasz dodatkowo obciążać procesor, co przekłada się na dalsze spowolnienie.
Rozmiar danych nie ma nic wspólnego z rozmiarem puli. Do pojedynczego pobrania lub przesłania zazwyczaj używasz tylko jednego połączenia, bez względu na wielkość. O ile implementacja nie jest błędna i korzystasz z więcej niż jednego połączenia, musisz to naprawić, jeśli chcesz, aby Twoja aplikacja była skalowalna.
Będzie czekać na następne dostępne połączenie.
Zobacz też: