Connection pooling
Database connections can often be "expensive" to create. Reasons for this include:
- The overhead of establishing a network connection.
- The initialisation of a database connection session in the back end.
Both of these often require time consuming processing to perform user authentication, establish transactional contexts, and other aspects of the session that are required for any subsequent database usage.
Not only does this affect the database that you are connecting to, but it can also affect the performance of the application making the database queries.
These issues can significantly limit the scalability of your application and the speed of operation.
Imagine a popular e-commerce site where tens of thousands of visitors all need access to a common set of data from your database. Establishing the authentication and connection overheads every time you connect to the back-end would slow your operation right down and lead to lost visitors.
This is where connection pooling comes in. It's a technique used to maintain active connections in memory for efficient re-use, and typically uses advanced management for the total number of connections an application might use simultaneously.
As with our e-commerce example above, it's particularly useful for server-side web applications. A connection pool is the standard way to maintain a "pool" of active database connections in memory, which are then reused across query requests.
If this connection was to Salesforce, for example, connection pooling would save valuable API calls.
It also allows an application to keep the connection to the database open so that it can reuse it for the next query instead of having to disconnect and reconnect for each query that needs to be run.
At Easysoft, we support business applications by supporting connection pooling through our Driver Manager.