Connection pooling reuses database connections instead of creating new ones for each request.
Why it matters:
Creating a connection takes -ms (TCP handshake, authentication, TLS). Pools maintain warm connections ready to use.
Key settings:
- Pool size: Start with - per app instance
- Max connections: DB limit / number of app instances
- Idle timeout: Close unused connections after - min
Tools: PgBouncer (PostgreSQL), HikariCP (Java), built-in pools in most frameworks.