Има определени проблеми, когато става въпрос за транзакции и различните нива на изолация предотвратяват повече или по-малко от тях. Описах това в отговора си тук
.
Проблем като фантомното четене например може да повлияе на резултата от избор, както го правите, да. Но резултатът от SQL_CALC_FOUND_ROWS се съхранява веднага щом заявката приключи и се губи веднага щом изпълните друга заявка в същата сесия. Това е важната част. SQL_CALC_FOUND_ROWS е обвързан със сесия . Няма начин резултатът от друга заявка в друга сесия да се съхранява във вашата текуща сесия. Използването на SQL_CALC_FOUND_ROWS не е предмет на условията на състезанието. Резултатът от заявката SELECT, да, но не и резултатът от FOUND_ROWS(). Не бъркайте това.