Laravel Performansında Uzmanlaşmak

Hızlı web uygulamalarına ihtiyacınız var. Yavaş uygulamalar kullanıcıları hayal kırıklığına uğratır ve işinize zarar verir. "N+1 sorgu problemi" Laravel uygulamalarınızı yavaşlatabilir. Ancak Laravel'in bir çözümü var: eager loading.

Bu teknik, with() metodunda uzmanlaşmanıza yardımcı olur. Uygulamalarınızı nasıl hızlı ve verimli tutacağınızı öğreneceksiniz.

Bir örneğe göz atalım. Bir blog platformunuz var. Her yazı bir yazara aittir. Yazıların bir listesini, her yazının yazarıyla birlikte göstermek istiyorsunuz.

Yaygın bir yaklaşım, önce tüm yazıları çekmek, ardından her yazının yazarını çekmektir. Bu durum, birçok veritabanı sorgusuyla sonuçlanır.

Eğer 100 yazınız varsa, bu kod 101 veritabanı sorgusu yapar. Bu, "N+1 sorgu problemi"dir. Ek yük oluşturur ve uygulamanızı yavaşlatır.

with() metodu bu sorunu çözer. İlgili tüm modelleri bir veya iki sorguda çeker.

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

Bu kod, tüm yazıları ve yazarlarını iki sorguda çeker.

Ayrıca birden fazla ilişkiyi de yükleyebilirsiniz: $posts = App\Models\Post::with(['author', 'category'])->get();

Veya ilişkilerin ilişkilerini yükleyebilirsiniz: $posts = App\Models\Post::with('author.profile')->get();

Eager loading, hızlı Laravel uygulamaları oluşturmanın anahtarıdır. N+1 sorgu problemini ortadan kaldırır ve veritabanı sorgularını azaltır.

Uygulamanızın performansını artırmak için with() metodunu kullanın.

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