Maîtriser la performance de Laravel

Vous avez besoin d'applications web rapides. Les applications lentes frustrent les utilisateurs et nuisent à votre entreprise. Le « problème de requête N+1 » peut ralentir vos applications Laravel. Mais Laravel a une solution : l'eager loading.

Cette technique vous aide à maîtriser la méthode with(). Vous apprendrez comment maintenir vos applications rapides et efficaces.

Examinons un exemple. Vous possédez une plateforme de blog. Chaque article appartient à un auteur. Vous souhaitez afficher une liste d'articles avec l'auteur de chaque article.

Une approche courante consiste à récupérer tous les articles, puis à récupérer l'auteur de chaque article. Cela entraîne de nombreuses requêtes à la base de données.

Si vous avez 100 articles, ce code effectue 101 requêtes à la base de données. C'est le « problème de requête N+1 ». Cela crée une surcharge et ralentit votre application.

La méthode with() résout ce problème. Elle récupère tous les modèles liés en une ou deux requêtes.

Vous pouvez l'utiliser de cette manière :

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

Ce code récupère tous les articles et leurs auteurs en deux requêtes.

Vous pouvez également charger plusieurs relations :

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

Ou charger des relations de relations :

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

L'eager loading est essentiel pour construire des applications Laravel rapides. Il élimine le problème de requête N+1 et réduit le nombre de requêtes à la base de données.

Utilisez la méthode with() pour améliorer les performances de votre application.

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