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ę.