Filter rows before expensive operations like JOINs when possible.
Less efficient:
SELECT * FROM orders o
JOIN customers c ON o.customer_id = c.id
WHERE o.status = 'completed' -- filters after join
More efficient (conceptually):
SELECT * FROM (
SELECT * FROM orders WHERE status = 'completed'
) o
JOIN customers c ON o.customer_id = c.id
In practice, modern databases often optimize this. But writing clear, filtered queries helps.
Find users who had sessions in January 2026:
Run your query to see results