Mysql
 sql >> Base de données >  >> RDS >> Mysql

Obtenir le nombre de résultats renvoyés par une requête MySQL avec JDBC de la manière la plus efficace en termes de performances

Faire une requête séparée n'est pas une bonne solution (à mon avis) car le serveur recherchera deux fois les lignes pour un ensemble de résultats.

Pour éviter une "double" requête, MySQL a la fonction FOUND_ROWS(), elle renvoie un nombre de lignes fondées pour les conditions actuelles à partir de WHERE clause. Ceci est très utile lorsque vous utilisez LIMIT et OFFSET dans la requête.Je pense que l'utilisation de cette fonction est une meilleure solution.http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_found-rows

J'avais lu il y a quelque temps que JDBC diffusait des lignes à partir du serveur, mais ce n'était pas une documentation officielle et je ne peux pas dire comment cela fonctionne dans le présent, mais les requêtes peuvent être différentes - avec des sous-requêtes et des jointures difficiles. Je pense que le serveur peut terminer toutes les ressources s'il "diffuse" ces lignes uniquement lorsque le client les demande.