Планирую На чем делать сайт с музыкой, Проекты будет напоминать аудио лист ВК, все на ajax без перезагрузки.
В общей сложности около 5 000 - 10 000- аудио файлов, категории, сортировки по популярности, имени, исполнителю, поиск. Рассчитываю на 3000 пользователей в месяц, с учетом того то они будут постоянно сортировать и юзать поиск.
Естественно файлового кэширования не будет.
Никогда не работал с NoSQL, прочитав массу статей так и не решил на чем лучше сделать.
1. MySQL + Redis
2. MongoDB
Может логичнее другие варианты, но NoSQL однозначно.
С подобным объемом данных вы можете и миллион посетителей в месяц на данной связке держать.
Sphinx нужен для более-менее приличного полнотекстовго поиска, обычно это ключевой момент при поиске музыки.
MongoDB имеет смысл, если у вас будет ну хотя бы 20 млн композиций, плюс там будет еще куча активности типа прослушиваний, коментов, лайков и прочей ерунды.
MySQL плохо масштабируется при смешанной нагрузке (когда запись/чтение почти поровну), но если у вас только чтение и данные редко обновляются, то можно иметь и миллионы композиций и при миллионной дневной посещаемости. Есть решения вроде Galera, где проблемы масштабирования решены достаточно неплохо.
MongoDB нужно использовать там, где критична гибкость схемы и важна значительная масштабируемость. Это хорошее решение например для хранения данных о пациентах и истории болезни. У каждого пациента своя очень сложная и уникальная история. На монге можно построить систему медицинских записей масштаба государства. На MySQL тоже можно, но это окажется гораздо более сложным решением.