Det finns vissa problem när det kommer till transaktioner och olika isoleringsnivåer förhindrar mer eller mindre av dem. Jag har beskrivit detta i mitt svar här
.
Ett problem som till exempel fantomläsningen kan påverka resultatet av en markering som om du gör det, ja. Men resultatet av SQL_CALC_FOUND_ROWS lagras så snart frågan är klar och går förlorad så snart du kör en annan fråga i samma session. Det är den viktiga delen. SQL_CALC_FOUND_ROWS är sessionsbunden . Det finns inget sätt att resultatet av en annan fråga i en annan session lagras i din nuvarande session. Användningen av SQL_CALC_FOUND_ROWS är inte föremål för tävlingsförhållanden. Resultatet av SELECT-frågan, ja, men inte resultatet av FOUND_ROWS(). Blanda inte ihop det här.