This MySQL article lists 5 problems to avoid when scaling out:
- Don't Think Synchronously. Introduce asynchronous communication, parallelization, and strategies to deal with approximate or slightly outdated data.
- Don't Think Vertically. Scaling by bigger machines won't work. Plan on horizontal scaling and asynchronous architectures form the start which make it easy to add capacity on demand.
- Don't Mix Transactions with Business Intelligence. Transactions and analytics are inherently different. Separate out different types of data onto different databases.
- Avoid Mixing Hot and Cold Data. Static and fast changing data are inherently different. Separate out different types of data onto different databases.
- Don't Forget the Power of Memory. Make data accessible in RAM by smartly partitioning data across servers.
More information at Scale-Out & Replication Best Practices for High-Growth Businesses.