Keen on performance
Battle-tested doesn't even begin to cover it — it is war-tested. Performance is the priority and the numbers have it.
ProxySQL has an advanced multi-core architecture. It's built from the ground up to support hundreds of thousands of concurrent connections, multiplexed to potentially hundreds of backend servers. The largest ProxySQL deployment spans several hundred proxies.
The development team doesn't need to rewrite queries generated by ORMs or software that can’t be easily modified. Meet ProxySQL's query rewriting feature, that empowers you to use the resources of your MySQL cluster as efficiently as possible.
Using its advanced rule engine, ProxySQL can easily support sharding by host, schema or a combination between the two. This requires minimal modifications to SQL queries, and to the application logic.
Efficient workload management
ProxySQL helps you squeeze the last drop of performance out of your MySQL cluster, without controlling the applications that generate the queries.
Forget applications that generate load by inefficiently accessing the same results over and over again. ProxySQL quickly jumps in with its advanced rule engine. Results can also be cached for a configurable timespan, in native MySQL packets format.
Take an advanced case, where different classes of queries need to be routed to different MySQL clusters, with different configurations. Solve it with ProxySQL's hostgroup concept. Based on an advanced matching engine, it is able to route queries transparently towards the destination cluster that can execute them most efficiently.
While ProxySQL does not offer support failover as a feature, it collaborates smoothly with the existing tools that enable it. It monitors the health of the backends it communicates with and is able to temporarily shun them based on configurable error rates.
Advanced configuration with 0 downtime
ProxySQL’s configuration system is inspired from routers. You can dynamically configure everything, persist the configuration and modify it. All with 0 downtime.
Application layer proxy
ProxySQL does not forward traffic blindly. It understands the MySQL protocol and acts accordingly. That's why it can easily serve advanced use-cases such as sticky transactions or real-time, in-depth statistics generation about the workload.
ProxySQL works out of the box on multiple flavors of Linux and FreeBSD. Moreover, it should be easily portable to other platforms where a gcc-compatible toolchain is available.
Advanced topology support
Cascading proxies for extra availability and flexibility. Complex MySQL topologies support, involving replication and failover or query mirroring. All of it performed effortlessly by ProxySQL.
In case of offending queries that cause problems to the DB (SQL injection or inefficient retrieval of information via SELECT * without WHERE, for example), ProxySQL acts as a gatekeeper between the application and the DB, allowing DBAs to react quickly.
ProxySQL: by DBAs for DBAs
Take back control of your MySQL cluster today. Scale and operate it smoothly. Unlock an unprecedented level of flexibility and performance. All the while getting the unlimited freedom that comes with a GPL license.
Latest Blog Posts
ProxySQL vs MaxScale: Persistent Connection, response time, and bugs
A few days ago I came across the announcement that MaxScale 1.3 finally supports Persistent Connection. ProxySQL has supported Persistent Connection since it…
Query rewrite with ProxySQL: use case scenario
One of ProxySQL most interesting features is query rewrite. This functionality is one of the main reasons to write a proxy that sits between the application…