sqlintermediate
Create and Refresh Materialized Views
Use materialized views to cache expensive query results for fast reads.
sqlPress ⌘/Ctrl + Shift + C to copy
-- Create a materialized view
CREATE MATERIALIZED VIEW monthly_revenue AS
SELECT
DATE_TRUNC('month', order_date) AS month,
product_category,
SUM(total) AS revenue,
COUNT(*) AS order_count
FROM orders
WHERE order_date >= '2024-01-01'
GROUP BY 1, 2;
-- Create index on the materialized view
CREATE INDEX idx_mv_month ON monthly_revenue (month);
-- Refresh the materialized view
REFRESH MATERIALIZED VIEW CONCURRENTLY monthly_revenue;
-- Query it like a regular table
SELECT * FROM monthly_revenue
WHERE month >= '2025-01-01'
ORDER BY revenue DESC;Use Cases
- Dashboard caching
- Expensive aggregation queries
- Reporting performance
Tags
Related Snippets
Similar patterns you can reuse in the same workflow.
sqlintermediate
SQL Materialized View Pattern
Create and manage materialized views for caching expensive queries with refresh strategies.
Best for: Caching expensive analytics queries
#sql#materialized-view
sqladvanced
Materialized View with Auto-Refresh
Create and maintain materialized views for expensive aggregate queries with concurrent refresh support.
Best for: Dashboard analytics
#materialized-view#performance
sqladvanced
SQL Index Strategy Patterns
Create effective indexes including composite, partial, covering, and expression-based indexes.
Best for: Optimizing slow database queries
#sql#indexes
sqlintermediate
SQL EXPLAIN ANALYZE for Query Tuning
Use EXPLAIN ANALYZE to understand query plans, identify bottlenecks, and optimize slow queries.
Best for: Diagnosing and fixing slow database queries
#sql#explain