alexjet73
@alexjet73

Какой способ подсчета строк быстрее и тратит меньше ресурсов SQL или PHP?

Есть записи с двумя значениями поля stat = 1 и 2.
DB::table('table')->select(
            DB::raw('`stat`, count(`stat`) as `count`')
        )->where('tid','=',$tid)->groupBy('stat')->get();

Это запрос подсчитывает записи. Сколько записей со значением stat=1 и сколько stat=2.
Так же есть вариант запросить через модель все записи с нужным "tid" (Model::where('tid',$tid)->get()) и получив их подсчитать перебрав при помощи PHP.
Есть ли информация у кого о том, какой способ будет выполняться быстрее и меньше затратит ресурсов?

p\s\ проверить на больших объемах возможности нет, поэтому интересно послушать тех кто на практике использовал методы или возможно где то находил тесты сравнительные
  • Вопрос задан
  • 147 просмотров
Решения вопроса 1
@FernandoErrNando
В таких случаях всегда такие вычисления перекладывают на БД, за 1 запрос ты получаешь ответ и возвращаешь его в качестве результата.
В случае, если ты попытаешься получить записи для подсчета в PHP, то на больших выборках велика вероятность получить слишком большой массив данных, который не поместится в память, отведенную под PHP, не говоря уже о времени перебора данных.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы