A query that got faster after the upgrade, and why

A query that improved by a factor of twenty after a major version upgrade, examined rather than accepted.

-- before (8.0.36)
-> Nested loop left join  (cost=41,208 rows=200)
     (actual time=0.4..1,840 rows=8,104)

-- after (8.4)
-> Hash antijoin  (cost=8,102 rows=8,104)
     (actual time=0.3..88 rows=8,104)

-- the NOT EXISTS was being executed as a correlated
-- subquery per row and is now an antijoin.

Understanding why something got faster is worth the ten minutes because it tells you what else will improve — every NOT EXISTS in the codebase was a candidate, and two more were found. Accepting an improvement without reading the plan also means not noticing when the next upgrade takes it away.