Материализованное представление

Материализованное представление — это объект базы данных, который хранит заранее вычисленный результат запроса на диске, а не пересчитывает его при каждом чтении. Обычное (виртуальное) представление выполняет свой запрос заново при каждом обращении; материализованное сохраняет ответ, поэтому последующие чтения быстрые — вы меняете место на диске и свежесть данных на скорость запросов. Для SaaS-разработчиков это прагматичный способ ускорить тяжёлые дашборды, агрегации и отчёты, не выстраивая отдельный слой кеширования. Вместо суммирования миллионов строк при каждой загрузке страницы вы обращаетесь к маленькой заранее посчитанной таблице. Подвох — устаревание: сохранённый результат отражает данные лишь на момент последнего обновления. Нужно решить, как обновлять — по расписанию, по запросу или инкрементально по мере изменения исходных данных. Postgres поддерживает REFRESH MATERIALIZED VIEW (с опцией CONCURRENTLY, чтобы не блокировать чтения); Snowflake и BigQuery предлагают самообновляющиеся варианты. Ориентир: используйте их, когда чтений намного больше, чем записей, а пользователи мирятся с чуть запаздывающими цифрами.

Похожие термины

Ещё термины: Данные и инфраструктура