कनेक्शन पुलिङले धेरै क्लायन्ट अनुरोधहरूमा डाटाबेस कनेक्शनहरूको एक सानो सेट पुन: प्रयोग गर्दछ, प्रत्येक अनुरोधको लागि नयाँ कनेक्शन खोलिको सट्टा। PostgreSQL कनेक्शनहरू महँगो हुन्छन् (प्रत्येक एक अलग प्रक्रिया हो जसले महत्त्वपूर्ण मेमोरी प्रयोग गर्दछ), त्यसैले पुलिङ लोडको अन्तर्गत कार्यक्षमता र स्केलेबिलिटीको लागि आवश्यक छ। PgBouncer मानक पूलर हो।
समस्या: PostgreSQL कनेक्शनहरू महँगो हुन्छन्
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.
