Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

SELECT COUNT() vs mysql_num_rows();


Usar COUNT , internamente o servidor processará a solicitação de forma diferente.

Ao fazer COUNT , o servidor apenas alocará memória para armazenar o resultado da contagem.

Ao usar mysql_num_rows , o servidor processará todo o conjunto de resultados, alocará memória para todos esses resultados e colocará o servidor no modo de busca, que envolve muitos detalhes diferentes, como bloqueio.

Pense nisso como os seguintes pseudocenários:

SELECT COUNT(*)

Ei Bob, quantas pessoas estão na sala de aula?

mysql_num_rows

Ei Bob, mande todas as pessoas da sala de aula para mim, ... eu vou contá-las para obter o número de pessoas eu mesmo

Em resumo, ao usar mysql_num_rows você está transferindo todos os registros para o cliente, e o próprio cliente terá que calcular a contagem.