Авторский канал про Базы Данных и SQL
Ресурсы, гайды, задачи, шпаргалки.
Информация ежедневно пополняется!
Cотрудничество: @energy_c
РКН: https://clck.ru/3QREBc
Post #1322
2.01K

Ускоряй отчёты с материализованными представлениями!
Когда отчёты считаются минутами, а данные почти не меняются, решение может быть в кэшировании результата.
Используй материализованное представление (как
Обновлять можно вручную или по расписанию (
А если нужно без блокировок чтения:
🔥 Помни:
➡️ SQL Ready | #совет
Когда отчёты считаются минутами, а данные почти не меняются, решение может быть в кэшировании результата.
Используй материализованное представление (как
VIEW, но результат хранится физически в таблице):CREATE MATERIALIZED VIEW daily_stats AS
SELECT date(created_at) AS day,
COUNT(*) AS total_orders
FROM orders
GROUP BY 1;
CREATE UNIQUE INDEX ON daily_stats(day); -- нужно для CONCURRENTLY
Обновлять можно вручную или по расписанию (
cron, pg_cron):REFRESH MATERIALIZED VIEW_stats;
А если нужно без блокировок чтения:
REFRESH MATERIALIZED VIEW CONCURRENTLY daily_stats;
🔥 Помни:
concurrently медленнее и требует индекс, но позволяет читать данные во время обновления.➡️ SQL Ready | #совет
- ❤ 17
- 👍 8
- 🔥 8
- 🤝 1


















