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