Padroneggiare le prestazioni di Laravel

Hai bisogno di applicazioni web veloci. Le app lente frustrano gli utenti e danneggiano il tuo business. Il "problema delle query N+1" può rallentare le tue app Laravel. Ma Laravel ha una soluzione: l'eager loading.

Questa tecnica ti aiuterà a padroneggiare il metodo with(). Imparerai come mantenere le tue app veloci ed efficienti.

Vediamo un esempio. Hai una piattaforma di blogging. Ogni post appartiene a un autore. Vuoi mostrare un elenco di post con l'autore di ciascun post.

Un approccio comune è recuperare tutti i post e poi recuperare l'autore di ogni singolo post. Ciò comporta numerose query al database.

Se hai 100 post, questo codice esegue 101 query al database. Questo è il "problema delle query N+1". Crea un sovraccarico e rallenta la tua app.

Il metodo with() risolve questo problema. Recupera tutti i modelli correlati in una o due query.

Puoi usarlo in questo modo:

$posts = App\Models\Post::with('author')->get();

Questo codice recupera tutti i post e i loro autori in due query.

Puoi anche caricare più relazioni:

$posts = App\Models\Post::with(['author', 'category'])->get();

O caricare relazioni di relazioni:

$posts = App\Models\Post::with('author.profile')->get();

L'eager loading è fondamentale per costruire app Laravel veloci. Elimina il problema delle query N+1 e riduce il numero di query al database.

Usa il metodo with() per migliorare le prestazioni della tua app.

Fonte: https://dev.to/prabashanadev/mastering-laravel-performance-a-deep-dive-into-eager-loading-22l0