Materialized Views en Postgres: cambiar actualidad por velocidad

Toda consulta de dashboard que agrega millones de filas al vuelo es una bomba de tiempo. Funciona bien con datos de prueba, se vuelve lenta con datos reales, y tarde o temprano alguien agrega un cron job que ejecuta esa misma consulta costosa cada cinco minutos «solo para cachearla». Postgres ya tiene una primitiva para esto — las materialized views — y la mayoría de los equipos no las conoce o las usa mal.

El tradeoff central es simple: las materialized views cambian actualidad por velocidad. Lo difícil no es crearlas; es decidir cuánta desactualización es aceptable y construir una estrategia de actualización que no bloquee tu aplicación mientras se ejecuta.