サーバーは1つの結果セットに対して行を2回検索するため、(私の意見では)個別のクエリを作成することは適切な解決策ではありません。
「二重」クエリを防ぐために、MySQLには関数FOUND_ROWS()があり、WHERE
から現在の条件に対して作成された行の数を返します。 句。これは、クエリでLIMITとOFFSETを使用する場合に非常に便利です。この関数を使用する方が、より良い解決策になると思います。 http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_found-rows
JDBCがサーバーから行をストリーミングすることを以前に読んだことがありますが、これは公式のドキュメントではなく、現在どのように機能するかはわかりませんが、クエリは異なる可能性があります-サブクエリと結合が難しい場合があります。クライアントがそれらを要求したときにのみこれらの行を「ストリーミング」する場合、サーバーはすべてのリソースを終了できると思います。