Pre-compute and store query results for fast reads. Instead of joining tables on every request, maintain a denormalized view updated when source data changes.
Implementation: database materialized views, or application-level with event handlers. Trade-off: storage for speed, eventual consistency. Used in read-heavy CQRS systems.