Слишком много строк, вызывающих ошибку 500?

У меня есть 40 тыс. Записей в базе данных, и я пытаюсь вызвать их, используя простой выбор в laravel.

$domains = Domain::where("available", 1)->limit(1000)->get();
return view('domains')
->with("domains", $domains);

Это прекрасно работает до нескольких тысяч строк. Но если я не установил лимит на вызов, я получаю 500 ошибок. Я не могу понять, почему, и я не могу понять, где я буду искать, как избежать этой проблемы, я не могу найти что-либо в журналах apache или в собственных журналах laravel, находящихся в хранилище.

1

Решение

Вы можете избежать этой проблемы, используя ->chunk команда.

Domain::where('available', 1)->chunk(200, function($domain){
//do whatever you would normally be doing with the rows you receive
// $domain stuff
});

Цель chunk Команда освобождает память после каждого X итерации модели. В этом случае я показал 200.

Примечание — В качестве метода чанка используется Closure как второй аргумент, убедитесь, что вы use($your_varaibles);

6

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]