Mysql
 sql >> Database >  >> RDS >> Mysql

SELECT COUNT() vs mysql_num_rows();

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.