Usa COUNT
, internamente il server elaborerà la richiesta in modo diverso.
Quando si esegue COUNT
, il server allocherà memoria solo per memorizzare il risultato del conteggio.
Quando si utilizza mysql_num_rows
, il server elaborerà l'intero set di risultati, allocherà memoria per tutti quei risultati e metterà il server in modalità di recupero, che implica molti dettagli diversi, come il blocco.
Pensalo come i seguenti pseudo scenari:
SELECT COUNT(*)
Ehi Bob, quante persone ci sono nell'aula?
mysql_num_rows
Ehi Bob, mandami tutte le persone della classe, ... le conterò io stesso per ottenere il numero di persone
In sintesi, quando si utilizza mysql_num_rows
stai trasferendo tutti i record al cliente e il cliente dovrà calcolare il conteggio stesso.