Connection Pool
A reusable set of open database connections, so requests skip the expensive handshake each time.
A connection pool keeps a set of open database connections ready to reuse, handing them out to requests and taking them back when done — instead of opening a fresh connection (an expensive TCP and auth handshake) for every query.
Worked example: a web app with a pool of 20 connections serves thousands of short requests by borrowing and returning connections; a request waits only if all 20 are busy. Gotcha: pool size is a tuning trap — too small and requests queue, too large and you exhaust the database’s own connection limit (each connection costs it memory) — which is why a proxy like PgBouncer often sits between app and database at scale.