"There are many layers to consider when it comes to databases,
and the variety of solutions is difficult to choose from. Depending
on your availability goals, the storage system back-ends you wish
to use, and the type of MySQL tables used, the answer will vary.
Let's try to untangle this mess.
"To make matters even worse, people often combine multiple
solutions to deal with the two types of scale at once: both
vertical and horizontal. We covered the different types of scaling
in a recent article about VM Scaling, but briefly: up (vertical)
means more compute power, out (horizontal) means to spread the load
across multiple servers.
"More often, however, database administrators have more than
enough power in a single server to cope with the load. The primary
need in that situation is to provide a mechanism for high
availability, so a failed server won't stop MySQL from functioning.
Here are the most popular solutions to deal with both types of
situations, in multiple ways."