Pokud jde o transakce, existují určité problémy a různé úrovně izolace jim více či méně brání. Popsal jsem to ve své odpovědi zde
.
Problém, jako je například fantomové čtení, může ovlivnit výsledek výběru, jako když to děláte vy, ano. Ale výsledek SQL_CALC_FOUND_ROWS se uloží, jakmile dotaz skončí, a ztratí se, jakmile provedete další dotaz ve stejné relaci. To je ta důležitá část. SQL_CALC_FOUND_ROWS je vázáno na relaci . Neexistuje žádný způsob, aby byl výsledek jiného dotazu v jiné relaci uložen ve vaší aktuální relaci. Použití SQL_CALC_FOUND_ROWS nepodléhá podmínkám závodu. Výsledek SELECT dotazu ano, ale ne výsledek FOUND_ROWS(). Nepleťte si to.