A laptop profile is a hypothesis, not a finding

Four differences between a development machine and production can each invert the conclusion a profile suggests.

local database      → queries look ~10x cheaper
opcache off         → autoloading dominates the profile
fixture dataset     → 40 rows, not 400,000. a missing
                      index is invisible.
one request at a time→ no lock contention, no pool
                      exhaustion, no cold cache

profile on staging with production-sized data, or sample
in production with a low-overhead profiler.

The dataset difference is the one that inverts rather than scales: an unindexed query is instant on forty rows and is the entire request on four hundred thousand, so a laptop profile can rank a missing index below something irrelevant. Checking that opcache is enabled before drawing any conclusion is the cheapest of these — with it off, class loading can be a third of the profile and sends people optimising an autoloader.