Utilisez COUNT
, le serveur traitera la requête différemment en interne.
Lorsque vous faites COUNT
, le serveur n'allouera de la mémoire que pour stocker le résultat du comptage.
Lors de l'utilisation de mysql_num_rows
, le serveur traitera l'intégralité de l'ensemble de résultats, allouera de la mémoire pour tous ces résultats et mettra le serveur en mode de récupération, ce qui implique de nombreux détails différents, tels que le verrouillage.
Pensez-y comme les pseudo scénarios suivants :
SELECT COUNT(*)
Hey Bob, combien de personnes sont dans la salle de classe ?
mysql_num_rows
Hé Bob, envoie-moi tous les gens de la classe, ... je vais les compter pour avoir le nombre de personnes moi-même
En résumé, lors de l'utilisation de mysql_num_rows
vous transférez tous les enregistrements au client, et le client devra calculer le nombre lui-même.