PHP / mysql должен подойти для этого масштаба, но вы должны настроить его и предоставить ему достаточно ресурсов.
Например, если ваша схема не продумана, вы столкнетесь со всевозможными стенами производительности. То, как ваши данные хранятся и индексируются, является, вероятно, самым важным фактором для эффективности отчетов. У меня было 60-100 ГБ данных в MySQL с временем отклика менее секунды для слегка сложных запросов. Важными факторами были:
- мои данные были проиндексированы для того, как я их использовал
- запросы, которые я использовал, были продуманы, протестированы и оптимизированы
Далее вы должны предоставить вашему серверу MySQL достаточно ресурсов. Если вы запускаете свое приложение на общем размещенном сервере и используете готовые настройки, mysql, вероятно, не будет хорошо работать с более чем несколькими сотнями мегабайт данных. Убедитесь, что ваши кэши настроены, типы таблиц имеют смысл для вашего приложения, и у вас достаточно памяти и достаточно быстрых дисков для удовлетворения ваших потребностей в производительности.
И, наконец, есть один прием, который мы все используем, когда наши наборы данных становятся большими: генерируйте свои отчеты на cron, а не по запросу. Если для генерации флэш-графика требуется 2 минуты, каждые 5 минут запускайте cron для генерации данных. Поместите его в файл где-нибудь и выложите это в графическое программное обеспечение вместо того, чтобы запрашивать базу данных в реальном времени.