Създаването на отделна заявка не е добро решение (по мое мнение), тъй като сървърът ще търси редове два пъти за един набор от резултати.
За да предотврати "двойна" заявка, MySQL има функция FOUND_ROWS(), тя връща редица редове, основани за текущи условия от WHERE
клауза. Това е много полезно, когато използвате LIMIT и OFFSET в заявката. Вярвам, че използването на тази функция е по-добро решение.http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_found-rows
Преди известно време бях чел, че JDBC предава редове от сървъра, но това не беше официална документация и не мога да кажа как работи в настоящето, но заявките могат да бъдат различни - с трудни подзаявки и съединения. Мисля, че сървърът може да завърши всички ресурси, ако "поточно" тези редове само когато клиентът ги поиска.