Laravel-Performance meistern
Sie benötigen schnelle Webanwendungen. Langsame Apps frustrieren Nutzer und schaden Ihrem Geschäft. Das „N+1-Abfrageproblem“ kann Ihre Laravel-Apps verlangsamen. Aber Laravel hat eine Lösung: Eager Loading.
Diese Technik hilft Ihnen dabei, die with()-Methode zu beherrschen. Sie werden lernen, wie Sie Ihre Apps schnell und effizient halten.
Schauen wir uns ein Beispiel an. Sie haben eine Blogging-Plattform. Jeder Beitrag gehört zu einem Autor. Sie möchten eine Liste von Beiträgen zusammen mit dem jeweiligen Autor anzeigen.
Ein gängiger Ansatz besteht darin, zuerst alle Beiträge abzurufen und dann den Autor jedes einzelnen Beitrags. Dies führt zu vielen Datenbankabfragen.
Wenn Sie 100 Beiträge haben, führt dieser Code 101 Datenbankabfragen aus. Das ist das „N+1-Abfrageproblem“. Es verursacht Overhead und verlangsamt Ihre App.
Die with()-Methode löst dieses Problem. Sie ruft alle verwandten Modelle in ein oder zwei Abfragen ab.
Sie können sie so verwenden:
$posts = App\Models\Post::with('author')->get();
Dieser Code ruft alle Beiträge und deren Autoren in zwei Abfragen ab.
Sie können auch mehrere Beziehungen laden:
$posts = App\Models\Post::with(['author', 'category'])->get();
Oder Beziehungen von Beziehungen laden:
$posts = App\Models\Post::with('author.profile')->get();
Eager Loading ist der Schlüssel zum Bau schneller Laravel-Apps. Es eliminiert das N+1-Abfrageproblem und reduziert die Anzahl der Datenbankabfragen.
Nutzen Sie die with()-Methode, um die Performance Ihrer App zu verbessern.
Quelle: https://dev.to/prabashanadev/mastering-laravel-performance-a-deep-dive-into-eager-loading-22l0