Хороший ответ Джеродева в этом сценарии.
В некоторых случаях вы не можете выполнить массовое обновление (например, если вам нужно выполнить обработку каждого элемента или если вам нужны события Eloquent дляПожар).В этих случаях вы можете избежать нехватки памяти, используя chunk
:
Activity::chunk(100, function($activities) {
foreach ($activities as $activity) {
$activity->delete();
}
});
. При этом происходит выборка только 100 (вы можете выбрать любое число здесь) за раз в памяти(против Activity::all()
, который загружает каждое действие в память одновременно; если это миллионы строк, вы можете легко понять, почему вы получаете ошибку памяти).