Använd COUNT
internt kommer servern att bearbeta begäran annorlunda.
När du gör COUNT
, kommer servern endast att allokera minne för att lagra resultatet av räkningen.
När du använder mysql_num_rows
, kommer servern att bearbeta hela resultatuppsättningen, allokera minne för alla dessa resultat och sätta servern i hämtningsläge, vilket involverar många olika detaljer, såsom låsning.
Tänk på det som följande pseudoscenarier:
SELECT COUNT(*)
Hej Bob, hur många personer är i klassrummet?
mysql_num_rows
Hej Bob, skicka alla personer från klassrummet till mig, ... jag ska räkna dem för att få antalet personer själv
Sammanfattningsvis, när du använder mysql_num_rows
du överför alla poster till klienten och klienten måste själv beräkna räkningen.