Первым стейджем фасет с расчетами отдельными по продуктам и общие цифры. Следующим стейджем сведение результатов отдлельных фасетных выборок, то что итак будет делаться в коде
Ник, вот скажи новичку - если мы грузим такими запросами, как выше (сложными) БД, то производительность её снижается - значительно? или не значительно?
представим пример, есть вот какая-то сложная операция, например О(n), сведение данных, агрегация и т.д. в 1 запросе.
представим, что такая же логика, но описана кодом, на таком же уровне реализации (максимально оптимизировано, минимальное количество вызовов и т.д.)
что эффективнее с точки зрения:
1. поддержки (о чём мы ранее общались, более сложные запросы сложнее поддерживать, изменять)
2. обработки (понятно, что если БД нагрузить, то она так же, как и нагруженное приложение будет долго обрабатывать данные)
3. потребления памяти (если приложение можно оптимизировать, то БД нет, кроме корневых конфигов)
получается, что в итоге, обработка более сложных вещей в коде даёт из плюсов только "умение делать более сложные вещи" и "проще поддерживать и изменять написанное, в сравнении с запросами к БД"
в твоей практике, как чаще бывает?
конечно, есть вариант ответа на мой вопрос - всё зависит от конкретной ситуации, приложения, запросов, количества коннектов, но если усреднить реализацию кодом и БД