Użyj COUNT , serwer wewnętrznie przetworzy żądanie w inny sposób.
Podczas wykonywania COUNT , serwer przydzieli pamięć tylko do przechowywania wyniku zliczania.
Podczas korzystania z mysql_num_rows , serwer przetworzy cały zestaw wyników, przydzieli pamięć dla wszystkich tych wyników i przełączy serwer w tryb pobierania, który obejmuje wiele różnych szczegółów, takich jak blokowanie.
Pomyśl o tym jak o następujących pseudo scenariuszach:
SELECT COUNT(*)
Hej Bob, ile osób jest w klasie?
mysql_num_rows
Hej Bob, wyślij do mnie wszystkie osoby z klasy... Sam je policzę, aby uzyskać liczbę osób
Podsumowując, używając mysql_num_rows przesyłasz wszystkie rekordy do klienta, a klient będzie musiał sam obliczyć liczbę.