Een aparte zoekopdracht maken is geen goede oplossing (naar mijn mening) omdat de server twee keer in rijen zoekt voor één resultatenset.
Om een "dubbele" zoekopdracht te voorkomen, heeft MySQL de functie FOUND_ROWS(), het retourneert een aantal rijen die zijn gebaseerd op de huidige voorwaarden van WHERE
clausule. Dit is erg handig wanneer u LIMIT en OFFSET gebruikt in de query. Ik geloof dat het gebruik van deze functie een betere oplossing is.http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_found-rows
Ik had enige tijd geleden gelezen dat JDBC rijen van de server streamt, maar dit was geen officiële documentatie en ik kan niet zeggen hoe het in het heden werkt, maar query's kunnen anders zijn - met moeilijke subquery's en joins. Ik denk dat die server alle bronnen kan voltooien als deze rijen alleen worden "gestreamd" wanneer de klant erom vraagt.