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

SELECT COUNT() vs mysql_num_rows();

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.