Advanced Query Optimization

Query Planning Deep Dive

-- PostgreSQL: Full EXPLAIN output
EXPLAIN (ANALYZE, BUFFERS, FORMAT TEXT)
SELECT u.name, COUNT(o.id) as order_count, SUM(o.total) as revenue
FROM users u
LEFT JOIN orders o ON u.id = o.user_id
WHERE u.created_at > '2026-01-01'
GROUP BY u.id, u.name
HAVING COUNT(o.id) > 5
ORDER BY revenue DESC
LIMIT 20;

-- Key metrics to watch:
-- actual time=X.X..Y.Y  → execution time per node
-- rows=N               → actual rows vs estimated
-- Buffers: hit=N        → cache hits (good)
-- Buffers: read=N       → disk reads (expensive)

Partitioning

Connection Pooling (PgBouncer)

Materialized Views

Last updated