Databases are hard to scale and are generally the bottleneck in scaling internet scale systems. Typical solutions to scale databases include:
1. Sharding – distribute records using some criteria
2. Separating database reads and writes: Database writes are slower where as reads are faster. Have a single/multiple(sharded) database for writing and many read databases.
3. Split the database horizontally and vertically
4. Use caching technologies like memcached/hypertable/big table etc.