1. A system, comprising: one or more computing devices implementing a database having an interface to accept query and update requests to the database according to a format; one or more computing devices implementing a server-side database proxy that accesses the database via the interface, the server-side proxy being separately maintained from the database; one or more computing devices implementing a client-side database proxy, configured to: receive, from a database client, a query request for select data of the database that is directed to the database, wherein the query request is formatted according to the interface for the database; evaluate the query request to determine that a valid version of the select data is stored as part of a results cache that stores data received from the server-side database proxy for previously performed queries to the database; in response to the determination that the valid version of the select data is stored as part of the results cache: access the results cache to obtain the select data; and send the select data to the database client; and in response to receiving an update request from the database client for at least a portion of the select data, invalidate the portion of the select data in the results cache; wherein the client-side database proxy comprises a proxy interface that replicates the interface of the database, and the query request and update request are received via the proxy interface.