Pooling i lidhjeve e ripërdor një grup të vogël lidhjesh bazash të dhënash në shumë kërkesa klientësh, në vend që të hapni një lidhje të re për çdo kërkesë. Lidhjet PostgreSQL janë të shtrenjta (secila është një proces i veçantë duke përdorur memorie të rëndësishme), kështu që pooling është thelbësor për performancën dhe shkallëzueshmërinë nën ngarkesë. PgBouncer është pooler-i standard.
Problemi: lidhjet PostgreSQL janë të shtrenjta
Each PostgreSQL connection = a separate OS PROCESS, using ~5-10MB of memory.
✗ Opening a connection has overhead (process creation, auth, setup)
✗ Many connections (e.g. 1000s from a busy app) → huge memory use, contention
✗ Postgres has a max_connections limit (often ~100); exceeding it = errors
→ Opening/closing a connection per request, or holding thousands open, doesn't scale.
