In client applications, a connection pool is a cache of connections maintained so that the connections can be reused when future requests to the resource are required. Many DBMSes also support server-side connection-pooling allowing them to service more concurrent clients than they have server-side processes or threads servicing them.

Connection pooling can drastically improve performance if applications repeatedly open and close connections by not performing costly initialization operations every time.