-
If it is about read-heavy workload then you should just add replicas. Add as many replicas as you need to handle the whole workload. You can balance all the queries across the replicas in the round robin fashion.
-
If it is about write-heavy workload, then you should partition your database across many servers. You can put different tables on different machines or you can shard one table across many machines. In the latter case, you can shard a table by a range of the primary key, or by a hash of the primary key, or even vertically by rows. In each of the cases above you may lose transactionality, so be careful, and make sure that all the data that is changed and queried by a transaction resides on the same server.