Techniques for transparent database table partitioning using proxy-based query rewriting are described. Multiple tables of a single database can be split up and hosted by multiple database instances. A database proxy receives database statements to be executed by the database and can send the statement to the corresponding database instance. For statements referencing multiple tables that are not co-hosted by a same database instance, the proxy rewrites the statements to generate multiple different statements to be sent to individual database instances hosting the referenced tables, and generates a final result based on responses from the database instances.