Chapter 22. Scaling and High Availability Architectures

In these days of an online world where applications need to run all the time, and need to run quickly, scaling and high availability are very important. MySQL's cost and three basic tenets of fast, reliable, and easy-to-use have redefined the database market. These days, those without advanced training and large amounts of money can create successful applications with database backends. In many ways, you can scale more and have a higher availability just by using MySQL instead of another database product.

Scaling and high availability are both very important to a successful application. Scaling means an application works with acceptable speed when there are one hundred users or one hundred million users. High availability means that the application is up and running for much of the time. Not all architectures that provide scaling will provide high availability, and vice versa.

A simple way to scale is to upgrade your hardware to a configuration with faster CPUs and disk, and more CPUs and RAM. This is costly, and only scales to a certain point. This is called scaling up, or vertical scaling, because you are upgrading the hardware. Horizontal scaling, or scaling out, increases the maximum capacity of your database architecture by adding more database servers.

One of the best ways to scale is to make sure your queries are running as quickly as possible. If a database ...

Get MySQL® Administrator's Bible now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.