Для предварительной подготовки аналитики в PostgreSQL подходят materialized views или отдельные агрегатные таблицы. Приложение читает готовые результаты вместо повторного тяжёлого расчёта.
Как решить ту же задачу без Redis и без увеличения памяти сервиса: как преподготовить аналитические данные средствами PostgreSQL?
Для предварительной подготовки аналитики в PostgreSQL подходят materialized views или отдельные агрегатные таблицы. Приложение читает готовые результаты вместо повторного тяжёлого расчёта.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Для предварительной подготовки аналитики в PostgreSQL подходят materialized views или отдельные агрегатные таблицы. Приложение читает готовые результаты вместо повторного тяжёлого расчёта.
Определите допустимое отставание и механизм обновления: полное расписание, инкрементальные изменения или пересчёт затронутых интервалов. Для materialized view учитывайте стоимость REFRESH и условия CONCURRENTLY. Обычный VIEW не сохраняет вычисленный результат. Без исходного запроса нельзя выбрать точную агрегацию, но перенос вычисления на обновление — основной принцип.