O Problema N+1

O problema N+1 é um dos maiores vilões de performance em aplicações Laravel. Quando você carrega posts e depois acessa o autor de cada post, você executa uma query por post.

Problema N+1

// ❌ Isso executa N+1 queries
$posts = Post::all();
foreach ($posts as $post) {
    echo $post->author->name; // 1 query por post!
}

Solução com Eager Loading

// ✅ Isso executa apenas 2 queries
$posts = Post::with('author')->get();
foreach ($posts as $post) {
    echo $post->author->name; // Sem query adicional!
}

Nested Eager Loading

// Carregar relacionamentos aninhados
$posts = Post::with(['author.roles', 'comments.author'])->get();