Er zijn bepaalde problemen als het gaat om transacties en verschillende isolatieniveaus voorkomen dat er meer of minder van worden gemaakt. Ik heb dit beschreven in mijn antwoord hier
.
Een probleem zoals de phantom read bijvoorbeeld, kan het resultaat van een selectie beïnvloeden, zoals je het doet, ja. Maar het resultaat van SQL_CALC_FOUND_ROWS wordt opgeslagen zodra de query is voltooid en gaat verloren zodra u een andere query uitvoert in dezelfde sessie. Dat is het belangrijke deel. SQL_CALC_FOUND_ROWS is sessiegebonden . Het is onmogelijk dat het resultaat van een andere zoekopdracht in een andere sessie in uw huidige sessie wordt opgeslagen. Het gebruik van SQL_CALC_FOUND_ROWS is niet onderworpen aan racevoorwaarden. Het resultaat van de SELECT-query, ja, maar niet het resultaat van FOUND_ROWS(). Verwar dit niet.