# Laravel Eager Loading ve N+1 Problemi

Canonical: https://kaantanis.com/bloglar/laravel/laravel-eager-loading-ve-n1-problemi

Yayın tarihi: 2024-10-01

Etiketler: Laravel

Yazar: Kaan Tanış

100 kullanıcıyı listeleyip her birinin yazılarını gösteriyorsunuz. Sayfa 8 saniyede açılıyor. Sebep genelde bu: N+1.Sorun ne$users = User::all(); // 1 ana sorgu

foreach ($users as $user) {
 $posts = $user->posts; // N sorgu
}1 ana sorgu + her kullanıcı için 1 sorgu. 100 kullanıcı varsa 101 sorgu. Döngü her döndüğünde veritabanına gidiliyor.Çözüm: with()$users = User::with('posts')->get();Hepsi bu. Laravel ilişkili veriyi tek seferde çekiyor, sorgu sayısı 2'ye düşüyor. Sayfa açılışı saniyelerden milisaniyelere iniyor.İki ek numaraVeriyi sonradan yüklemek isterseniz:$users->load('posts');İlişkiyi filtreleyerek çekmek isterseniz:$users = User::with(['posts' => function ($query) {
 $query->where('published', true);
}])->get();Livewire ile çalışırken bu daha da kritik, çünkü her etkileşimde sorgular tekrar koşuyor. Component render olmadan önce with() ile yükleyin, arayüz akıcı kalsın.
