In Part 1 of this article, I explained the basic steps to move your application from a single server to a scalable solution for both PHP and MySQL. While most Web applications will never need to expand beyond the concepts presented in that article, eventually you may find yourself in a situation where the basic steps aren’t enough. Here are some more advanced topics on how you might change your setup to support additional throughput, isolate "concerns" better, and take your scalability to the next level.
He starts with a look at database pooling and how it can not only help you on load balancing your application's resources but also in the caching of the requests. Different resources give different cache results and grouping those together makes life simpler (and faster) for your application. He also talks a a bit about sharding - vertical, manual horizontal and application level techniques.