1. A computer-implemented method comprising: receiving, by a processing device executing a virtual database system, information identifying a database implementation having a database schema and a plurality of database elements; identifying a plurality of database servers to host the database implementation; analyzing usage characteristics of the database schema, the analyzing comprising identifying common data requests; distributing, by the processing device, the database implementation over the plurality of database servers based on the usage characteristics of the database schema, the distributing comprising: determining a layout of the database implementation for providing maximum performance of the common data requests, wherein the layout specifies that first tables comprising first database elements of the plurality of database elements are to be collocated with second tables comprising second database elements of the plurality of database elements; and populating, based on the layout, the plurality of database servers with the plurality of database elements so that at least one database server of the plurality of database servers contains different database elements of the plurality of database elements than other database servers of the plurality of database servers, wherein the first tables and second tables are collocated on a single database server of the plurality of database servers; and providing access to the database implementation for one or more applications by the virtual database system.