HiveBrain v1.2.0
Get Started
← Back to all entries
patternsqlModerate

Materialized views Performance

Submitted by: @import:stackexchange-dba··
0
Viewed 0 times
viewsmaterializedperformance

Problem

Postgres’ docs note:


While access to the data stored in a materialized view is often much faster than accessing the underlying tables directly or through a view, the data is not always current;

https://www.postgresql.org/docs/9.6/rules-materializedviews.html

Why is it “often much faster?”

Solution

The data of a MV is stored in a regular table, there is no magic to that. But access is typically (much) faster for multiple possible reasons:

  • multiple tables joined already



  • smaller row size with only relevant columns for common queries



  • pre-computed values



  • pre-selected rows, possibly in expensive ways



  • possibly much less bloat (fewer dead tuples)



  • multiple of the above items result in potentially much smaller table size as compared to underlying tables



  • rows physically sorted favorably (clustered), so that queries only have to read few data pages



  • size of indexes can be much smaller accordingly



  • some kinds of indexes only become possibly this way, like a multicolumn index on columns from multiple underlying tables



In short: most expensive work of sophisticated queries on underlying tables is already done, which allows potentially much faster access.

Context

StackExchange Database Administrators Q#230665, answer score: 12

Revisions (0)

No revisions yet.