sql >> Base de Datos >  >> RDS >> Mysql

Obtener el recuento de resultados devueltos por una consulta MySQL con JDBC de la manera más eficiente en cuanto a rendimiento

Hacer una consulta separada no es una buena solución (en mi opinión) porque el servidor buscará filas dos veces para un conjunto de resultados.

Para evitar consultas "dobles", MySQL tiene la función FOUND_ROWS(), devuelve un número de filas fundadas para las condiciones actuales desde WHERE cláusula. Esto es muy útil cuando usa LIMIT y OFFSET en la consulta. Creo que usar esta función es una mejor solución. http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_found-rows

Había leído hace algún tiempo que JDBC transmite filas desde el servidor, pero esto no era documentación oficial y no puedo decir cómo funciona en el presente, pero las consultas pueden ser diferentes, con subconsultas y uniones difíciles. Creo que el servidor puede terminar todos los recursos si "transmite" estas filas solo cuando el cliente las solicita.