Views / Materialized Views

PostgreSQL 🟡 Mid

Definition

Une View est une requete nommee (virtuelle, recalculee a chaque appel). Une Materialized View stocke physiquement le resultat et doit etre rafraichie manuellement.

Analogie

View = regarder par la fenetre en temps reel. Materialized View = une photo de la vue, rapide a consulter mais a actualiser.

Exemple de code

CREATE MATERIALIZED VIEW monthly_sales AS
  SELECT date_trunc('month', created_at) as m,
    SUM(total) as revenue
  FROM orders GROUP BY m;
REFRESH MATERIALIZED VIEW CONCURRENTLY
  monthly_sales;

Cas d'usage

Materialized views pour des dashboards lourds a calculer, Views pour simplifier des requetes complexes.

Anti-pattern

Oublier de rafraichir la materialized view, affichant des donnees obsoletes.
#sgbd#interview#database#postgresql