Если есть данные, которые запрашиваются очень часто, вам следует их кешировать.Попробуйте использовать кэш в памяти, такой как memcached , для хранения вещей, которые могут быть повторно запрошены за короткое время.Для этого у вас должна быть свободная оперативная память: попробуйте использовать свободную память на внешнем (-их) компьютере (ах), обычно обслуживая HTTP-запросы и применяя шаблоны менее интенсивно в ОЗУ.Кстати, вы можете кэшировать не только необработанные записи БД, но и готовые фрагменты страниц с форматированием и все.
Если ваша загрузка не может быть разумно обработана одной машиной, попробуйте sharding вашей базы данных .Поместите данные некоторых ваших пользователей (сообщения, комментарии и т. Д.) На один компьютер, данные других пользователей на другой компьютер и т. Д. Это сделает невозможным некоторые объединения на уровне базы данных, поскольку данные находятся на разных компьютерах, но объединения выполняются вами.часто будет распараллеливаться.
Кроме того, взгляните на ориентированные на документы хранилища данных «NoSQL», такие как (MongoDB) [http://www.mongodb.org/]. Это, например, позволяет хранить пост и все комментарии к нему в одной записии получить за одну операцию, без каких-либо соединений.Но регулярные объединения практически невозможны.Вероятно, сочетание хранилища SQL и NoSQL является наиболее эффективным (и сложным в обращении).