MySQL
How DBO uses ProxySQL to provide connection pooling for MySQL databases.
DBO provides connection pooling for MySQL databases through ProxySQL, a high-performance MySQL proxy. ProxySQL sits between your application and MySQL and multiplexes application connections onto a smaller pool of real database connections, reducing overhead and improving scalability.
NoteThis page covers connection pooling for MySQL databases. For PostgreSQL, see PostgreSQL.
Will your application benefit?
The main value of a pooler is multiplexing — letting many application connections share a smaller number of real database connections. Three signals indicate your app is a good candidate.
Short transactions
If your application executes queries that are fast and frequent, connections are released back to the pool quickly and can be reused by other clients. This is the core mechanic that makes pooling valuable.
If your application runs only a few slow queries, connections stay checked out for longer, leaving little opportunity for sharing. Pooling will still work, but the benefit will be minimal.
High idle connection ratio
A high ratio of idle to total connections suggests that clients are holding open connections without actively using them. A pooler can absorb these idle clients without tying up real database connections.
Connection spikes
If your connection count periodically surges well above its typical average, a pooler is particularly valuable. ProxySQL acts as a buffer: MySQL sees a stable, capped number of connections while the pooler absorbs the spike and queues clients waiting for a free slot.
Application compatibility
ProxySQL is transparent to your application — no code changes or compatibility audit required. By default, ProxySQL pins client connections to a specific backend connection, which means your application will work without any modifications out of the box.
The trade-off is that connection pinning reduces the multiplexing efficiency of the pool. If you want to maximize pooling performance, pinning can be relaxed, but that may require validating your application against the same kinds of session-state constraints that apply to PostgreSQL pooling.
Updated 4 days ago
