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.