Это зависит от реализации подсчета Symphony (), но вы, вероятно, будете.Обычно СУБД подсчитывает свои строки быстрее внутри страны, и для этого требуется гораздо меньше ресурсов.
В первом случае вы запрашиваете целый набор строк, который может быть огромным, затем вы выполняете итерацию по нему, применяете свою функцию фильтра к каждой строке,а затем вы просто смотрите на размер отфильтрованного набора строк и все отбрасываете.(Но, конечно, это может быть как-то оптимизировано вашей средой).
Во втором случае вы просто спрашиваете базу данных, сколько строк в ней удовлетворяет критериям.И БД возвращает вам число, и это все.
Как говорили другие люди, единственный случай, когда первый выбор может быть более быстрым, - это когда вы уже кэшировали набор строк (не нужно подключаться к БД) - и когда вашСоединение с БД очень медленное в то же время.
Я видел базы данных, которые работали медленно на некоторых запросах COUNT (Oracle) для больших таблиц, но они все еще были быстрее, чем PHP-код на том же наборе строк.БД оптимизированы для фильтрации и подсчета данных.И обычно запрос COUNT выполняется очень быстро.