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
Releasing ProxySQL 1.4.0
Releasing ProxySQL 1.4.0 (beta) ProxySQL is a high performance, high availability, protocol aware proxy for MySQL, with a GPL license! Today I am excited to…
On demand query routing - how to prevent downtime on your main MySQL server
In a previous post I wrote about how read/write split is implemented in ProxySQL, and what I believe is the best practice for read/write split on top of MySQL…
Obfuscate data from mysqldump with ProxySQL
While me and Fred were presenting Inexpensive Datamasking for MySQL with ProxySQL at FOSDEM 2017, we got a very interesting question: can ProxySQL be used to…
MySQL read/write split with ProxySQL
Query routing is one of the core features of ProxySQL. Read/write split is perhaps one of the most common query routing use, while the other most commonly used…
Multiple ProxySQL instances on same ports, and seamless upgrade
Since its genesis ProxySQL was designed to be reconfigurable at runtime without restarting it. There are only 2 exceptions: changing the listening ports (work…