Views / Materialized Views

PostgreSQL 🟡 Mid

Définition

Une View est une requête nommée (virtuelle, recalculee a chaque appel). Une Materialized View stocke physiquement le résultat et doit être rafraîchie manuellement.

Analogie

View = regarder par la fenêtre en temps réel. 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 requêtes complexes.

Anti-pattern

Oublier de rafraîchir la materialized view, affichant des données obsolètes.
#sgbd#interview#database#postgresql

En entretien

  1. Quelle différence entre une View et une Materialized View ?

    Une View est une requête nommée virtuelle, recalculée à chaque appel, comme regarder par la fenêtre en temps réel. Une Materialized View stocke physiquement le résultat, comme une photo de la vue, rapide à consulter mais à actualiser.

  2. Quel est le piège classique avec les materialized views ?

    Le piège est d'oublier de la rafraîchir, ce qui affiche des données obsolètes. On utilise REFRESH MATERIALIZED VIEW, idéalement CONCURRENTLY pour ne pas bloquer les lectures pendant le rafraîchissement.

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre