Course contentsShow
← Databases & SQL
Lesson 513 of 1,9535. Relational Schema ArchitectureFree lesson

Materialized View Design

Implement materialized views to cache expensive join and aggregation calculations.

In this lesson, you will learn how to use materialized views to dramatically accelerate read performance by caching the results of complex, resource-heavy SQL queries.

The Problem: Expensive Computations

In a normalized relational schema, answering complex analytical questions often requires joining multiple large tables and performing aggregations (like SUM or COUNT). When your application performs these calculations every time a user requests data, the database must re-scan indexes and compute results from scratch. If this happens frequently, it places significant load on your CPU and I/O, leading to latency.

The Solution: Materialized Views

A materialized view is a database object that stores the result set of a query physically on disk, just like a standard table. Instead of calculating the join or aggregation at query time, the database simply fetches the pre-computed snapshot.

Consider an e-commerce database where you need a dashboard showing total sales by category. Without a materialized view, you might run this repeatedly:

SELECT c.category_name, SUM(o.amount) 
FROM orders o
JOIN categories c ON o.category_id = c.id
GROUP BY c.category_name;

If your orders table has millions of rows, this query is slow. By creating a materialized view, you transform this into a simple "read-only table" request:

CREATE MATERIALIZED VIEW sales_summary_mv AS
SELECT c.category_name, SUM(o.amount) as total_sales
FROM orders o
JOIN categories c ON o.category_id = c.id
GROUP BY c.category_name;

Design Considerations

  • Refresh Strategy: Because the data is cached, it becomes "stale" as soon as new data is inserted into the base tables. You must decide whether to refresh the view manually, on a scheduled basis, or trigger an update after specific write operations.
  • Storage Cost: You are trading storage space for read speed. Ensure the performance gains justify the additional disk usage.
  • Use Cases: Materialized views are perfect for OLAP-style reporting where slight delays in data freshness are acceptable in exchange for sub-second query performance.

Key Takeaway: Materialized views turn expensive, repeating calculations into instant lookups by persisting query results to disk, effectively trading storage for massive gains in read performance.