Използвайте COUNT
, вътрешно сървърът ще обработи заявката по различен начин.
Когато правите COUNT
, сървърът ще разпредели памет само за съхраняване на резултата от броенето.
Когато използвате mysql_num_rows
, сървърът ще обработи целия набор от резултати, ще разпредели памет за всички тези резултати и ще постави сървъра в режим на извличане, който включва много различни детайли, като например заключване.
Мислете за това като следните псевдо сценарии:
SELECT COUNT(*)
Хей, Боб, колко човека има в класната стая?
mysql_num_rows
Хей, Боб, изпрати всички хора от класната стая при мен, ... ще ги преброя, за да получа сам броя на хората
В обобщение, когато използвате mysql_num_rows
вие прехвърляте всички записи на клиента и клиентът ще трябва сам да изчисли броя.