@Urukhayy

Кэширование результата vs постоянный пересчёт того же самого?

Сервер отдаёт клиентам какие-то данные. К примеру, отчёт о статистике магазина за сутки. Он содержит строки с суммами покупок, включая все налоги и прочее и последняя строка это сумма по всем категориям (требуется суммировать много всего и множество строк). Суммарный налог за все товары, суммарная сумма покупок и т.п. То есть при каждом запросе на сервер нужно давать эти данные всем кто попросит. Как лучше это организовать - каждый раз пересчитывать сумму по новой для каждого запроса, или хранить поле "сумма" в БД и при добавлении новой покупки увеличивать его?

P.S. Если постоянно считать то же самое, теоретически, процесс будет работать впустую. Зачем бесконечно раз пересчитывать одно и тоже, когда можно просто хранить результат и обновлять его по мере прихода новых строк в таблицу?
  • Вопрос задан
  • 115 просмотров
Пригласить эксперта
Ответы на вопрос 2
vaut
@vaut
Сколько времени занимает это суммирование?
Сколько раз за день нужно отдавать эту статистику?
Сколько времени занимает отдача остального контента?

Ранняя оптимизация к добру не приведет.
Вы можете потратить кучу нерв и времени на валидацию кеша, и не увидеть разницы в производительности.
Ответ написан
@FreeBa
Один из великих сказал. "В программировании есть только две по настоящему сложные вещи - это придумывание названий переменным и инвалидация кэша."(с)

Если мощности позволяют обходится без кэширования, то лучше его не использовать.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы