As MySQL Driven Application growths, requiring to handle larger and larger load with increasing database size there are several Architectural methods to get the performance you need:
Caching Buffering and Queueing -- using supplemental systems to reduce the amount of reads or writes MySQL Server needs to handle or change them from being synchronous (users waiting for response) to background
Replication is a technique to scale the read load by being able to read from multiple copies of your data
Functional Partitioning and Sharing are techniques to split your database in the smaller portions which can be served by individual servers or group of Servers
In this tutorial we will go into details of how to understand what solutions are best for your application, how to design architecture to take the best advantage of these approaches as well as go into practical details/tips/tricks implementing them in production.