ProxySQL vs SPQR
ProxySQL
proxysql.comSPQR
docs.pg-sharding.techSide by side
| Figure | ProxySQL | SPQR |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Linux | Yes | Yes |
| API | — | Yes |
| Self-hosted | Yes | Yes |
| Plans published | 3 | 1 |
| Spec score · Database Proxy Software | 7.3 (#23) | 7.8 (#9) |
| Deployment | The installation guide provides Linux distribution packages and describes Docker and Kubernetes deployment options. | The getting-started guide provides a Docker image and lists router, admin console, and gRPC API ports as 6432, 7432, and 7000. |
| Security | The features page describes a database firewall intended to protect databases from SQL injection and runaway queries. | The docs show PostgreSQL connections configured with SSL modes including require and verify-full. |
| Support | Commercial offerings include SLA-backed support, priority response, and dedicated account management; community users can use GitHub Discussions, Google Groups, and GitHub Issues. | The project directs users to its Telegram chat for discussion and GitHub Issues for bug reports or feature requests. |
| What it does | ProxySQL is a database proxy for MySQL, PostgreSQL, and their surrounding ecosystems that scales database infrastructure without changes to the application stack or database engine. | SPQR is a stateless PostgreSQL query router for horizontally scaling PostgreSQL through sharding. |
Plans
In their own words
ProxySQL
ProxySQL is a self-hosted Linux database proxy for MySQL, PostgreSQL and related systems. It scales infrastructure without changes to the application stack or database engine, multiplexing more than 100,000 client connections through a few hundred backend connections. Protocol-aware, regex-based routing can send queries to primary servers, replicas or shards, and can route by user, schema or table. The proxy can cache results without application changes, monitor backend health and reroute traffic during failures. Query mirroring duplicates live traffic for analysis and performance testing, while percentage-based balancing supports gradual shifts. A database firewall is intended to protect against SQL injection and runaway queries. Deployment options include Linux packages, Docker and Kubernetes. ProxySQL is GPLv3-licensed open source, released in 2013. The Community plan is free and includes core features, supported platforms and community channels.
SPQR
SPQR is a self-hosted query router for horizontally scaling PostgreSQL through sharding. It can extract a sharding key from a query and route it to the relevant key range and shard when possible; keys can use one column or several. Queries can also specify a key or shard in a SQL comment. Applications connect using the PostgreSQL protocol, and the router and coordinator provide administrative consoles accessible through psql. SPQR supports one-phase and two-phase commit strategies; two-phase commit provides atomicity across shards and requires max_prepared_transactions greater than zero on each shard. The system can move data between shards to balance workload, and the project describes reducing transferred ranges to limit locking impact. Its documentation includes Docker and configuration-file deployment instructions. SPQR is free and distributed under the PostgreSQL Global Development Group License. The FAQ cautions that it is not suited to complex cross-shard queries, transactions modifying multiple shards or OLAP workloads, and reports a roughly 10–30% performance drop versus vanilla PostgreSQL depending on workload.