🚀 O que é o chunk() no Laravel?
O chunk() é um método do Eloquent/Query Builder que busca registros em blocos menores, ao invés de carregar tudo na memória de uma vez.
❌ O Problema do Model::all()
$users = User::all(); // carrega tudo em RAM de uma vez
- 50 mil registros: já começa a pesar o servidor.
- 500 mil registros: começa a doer a performance.
- 5 milhões: vai derrubar seu worker, job ou container 😅
✅ Como usar chunk() na prática
O Laravel busca, processa e libera a memória automaticamente:
User::chunk(200, function ($users) {
foreach ($users as $user) {
// processa cada usuário
}
});
📌 Por que usar?
Estabilidade
Não estoura a RAMEscalabilidade
Lida com milhões de linhasBackground
Ideal para Queues/Jobs⚠️ Cuidado importante: use chunkById()
Se você atualiza ou deleta registros durante o loop, o chunk comum pode pular linhas. Use chunkById() para garantir a integridade.
🧠 Ponto de Senioridade
O "Combo de Produção" para arquivos gigantes:
"Código que funciona é o mínimo. Código que escala é o que separa dev júnior de dev sênior."