Ingen nämner detta riktigt, men det korrekta sättet att använda SQL_CALC_FOUND_ROWS
tekniken är så här:
- Utför din fråga:
SELECT SQL_CALC_FOUND_ROWS * FROM `table` LIMIT 0, 10
- Kör sedan den här frågan direkt efteråt:
SELECT FOUND_ROWS()
. Resultatet av den här frågan innehåller hela räkningen av den föregående frågan, det vill säga som om du inte hade använtLIMIT
klausul. Den här andra frågan är omedelbart snabb, eftersom resultatet redan har cachelagrats.