Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Yazı Tipi BoyutlandırıcıAa
  • Anasayfa
  • Teknoloji
    • Siber Güvenlik
    • Yapay Zeka
    • Donanım
    • Bilim
  • Yazılım
  • Savunma & İstihbarat
  • Oyun
  • Yaşam
    • Finans
    • Sinema
    • Dünyadan Haberler
  • İş Birliği
Okuma: N+1 Sorgu Çözümü ile Sayfa Yükleme Süresini Nasıl Hızlandırdım (React + Laravel)
Paylaş
Yazı Tipi BoyutlandırıcıAa
Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Ara
Bizi Takip Et
  • Hakkımızda
  • Gizlilik politikası
  • Tanıtım Yazısı ve Backlink Hizmeti
© 2026 Teknomers. All Rights Reserved.

Anasayfa » N+1 Sorgu Çözümü ile Sayfa Yükleme Süresini Nasıl Hızlandırdım (React + Laravel)

Yazılım

N+1 Sorgu Çözümü ile Sayfa Yükleme Süresini Nasıl Hızlandırdım (React + Laravel)

teknomers
Son güncelleme: 30 Mart 2026 09:37
teknomers
Paylaş
Paylaş

Laravel ve React uygulamamı ilk oluşturduğumda, her şey yolunda gidiyordu—ta ki veriler büyüyene kadar.

İlk başta anında yüklenen sayfalar saniyeler alır hale geldi. Sonra daha da uzadı.

Başta bunu frontend sorunu olarak düşündüm. Belki React çok fazla yeniden render ediyordu. Belki bileşenlerim optimize edilmemişti.

Yanıldım.

Asıl problem, backend’deydi ve bu problemin adı: N+1 sorgu problemi.




İlk Başta Görmediğim Problem

Diyelim ki Laravel backend’inde şunlar vardı:

  • Bir öğrenci listesi
  • Her öğrencinin notları var
  • Her notun bir dersle ilişkisi var

Basit, değil mi?

Ancak verileri fetch ettiğim de olan şuydu:

1 sorgu ile öğrencileri almak
Sonra her öğrencinin ilişkili verilerini almak için N sorgu

Yani 100 öğrenci varsa, toplamda:
👉 101 sorgu çalıştırıyordum.

Bu, N+1 problemidir.

Ve performansı mahvetti.




Nasıl Fark Ettim

Backend’i debug etmeye başladım ve garip bir şey fark ettim:

  • API yanıt süresi yavaştı
  • Veritabanı sorguları veri boyutu ile artıyordu

Laravel debug araçları ve logları kullandım.

O zaman net bir şekilde gördüm:
👉 Sorgular döngüler içinde çalıştırılıyordu

Burası, problemimin farkına vardığım an oldu.




Çözüm: Eager Loading

Laravel’in bunu çözmek için bir çözümü var: Eager Loading

İlişkili verileri tek tek almak yerine, hepsini tek bir sorguda yükledim.



Önce (Kötü)

$students = Student::all();

foreach ($students as $student) {
    echo $student->marks; // her seferinde sorgu tetikler
}



Sonra (İyi)

$students = Student::with('marks')->get();

Artık:

  • Toplamda sadece 2 sorgu var
  • Öğrenci sayısına bakılmaksızın

Bu büyük bir iyileşme sağladı.




Derinleşmek: İçi İçine Geçen İlişkiler

Benim durumum o kadar basit değildi.

Daha derin ilişkilerim vardı:

  • öğrenciler → notlar → dersler

Bu yüzden iç içe eager loading kullandım:

$students = Student::with('marks.subject')->get();

Artık her şey, minimum sorgu ile verimli bir şekilde yükleniyor.




API Yanıtını Optimize Etme

Sorguları düzeltmek yeterli değildi.

Ayrıca verilerin React’e nasıl gönderileceğini de geliştirdim.



Neyi Değiştirdim:

  • Gereksiz alanları kaldırdım
  • API Resources (Transformers) kullandım
  • Sadece UI’nın ihtiyacı olanı gönderdim
return StudentResource::collection($students);

Bu, yük hacmini azaltarak hız arttırdı.




React Tarafında Optimizasyon

Laravel’i düzelttikten sonra, React’i de geliştirdim.



1. Gereksiz Yeniden Render’ları Önleyin

Kullandım:

  • useMemo
  • useCallback
  • Uygun durum yapısı



2. Temel Bileşenleri Tembel Yükleme

const Dashboard = React.lazy(() => import('./Dashboard'));

Bu, başlangıç yükleme süresini azalttı.



3. Verimli Veri Fetching

  • Tekrar eden API çağrılarını önledim
  • Mümkünse sonuçları önbelleğe aldım



Sonuç

Tüm optimizasyonların ardından:

  • Sayfa yükleme süresi önemli ölçüde düştü
  • API daha hızlı ve ölçeklenebilir hale geldi
  • Büyük verilerle bile UI anlık hissettirdi

Artık yavaş ve ağır olan bir şey, pürüzsüz ve duyarlı hale dönüştü.




Ne Öğrendim

Bu deneyim bana önemli bir şey öğretti:

Performans sorunları genellikle düşündüğünüz yerlerde değildir.

React’a bakmak için zaman harcadım—ama asıl sorun veritabanındaydı.




Temel Çıkarımlar

  • Backend sistemlerinde her zaman N+1 sorgularını takip edin
  • Laravel’de Eager Loading kullanın (with())
  • API yanıtlarını optimize edin, sadece sorguları değil
  • Frontend performansı backend verimliliğine bağlıdır



Son Düşünceler

N+1 sorgu problemini düzeltmek, uygulama geliştirme bakış açımı tamamen değiştirdi.

Artık bir özellik tasarlarken, kendime soruyorum:

👉 Bu kaç sorgu çalıştıracak?

Çünkü performans sadece kodla değil—sistemlerin etkileşimiyle ilgilidir.

Ve kök sorunu çözdüğünüzde, her şey daha hızlı hale gelir.

Kaynak: Orijinal Makale

Contents
  • İlk Başta Görmediğim Problem
  • Nasıl Fark Ettim
  • Çözüm: Eager Loading
    • Önce (Kötü)
    • Sonra (İyi)
  • Derinleşmek: İçi İçine Geçen İlişkiler
  • API Yanıtını Optimize Etme
    • Neyi Değiştirdim:
  • React Tarafında Optimizasyon
    • 1. Gereksiz Yeniden Render’ları Önleyin
    • 2. Temel Bileşenleri Tembel Yükleme
    • 3. Verimli Veri Fetching
  • Sonuç
  • Ne Öğrendim
  • Temel Çıkarımlar
  • Son Düşünceler
Laravel Alt Alan Adı Rotalarında Kök Alan Adı URL’leri Oluşturma: UrlGenerator’ı Kopyala
Laravel’de Yerel WebDAV Sunucusu Yoktu – Bu nedenle Kendi Sunucumu Geliştirdim
Laravel için Dinamik Alan Düzeyi Güvenliği
Monolitleri Sözsüzleştirmek: Laravel’de Olay Tabanlı Mimari
Laravel E-posta Tercih Merkezi: Laravel için entegre e-posta abonelik yönetimi
Bu Makaleyi Paylaş
Facebook Bağlantıyı Kopyala Yazdır
Paylaş
Önceki Makale Bitcoin 65,200 Doların Altında Dip Yaptıktan Sonra 67,400 Doları Aştı
Sonraki Makale Borderlands 4’ün İlk Hikaye DLC’si ile Macera Başlıyor!

Sanal Medya

FacebookBeğen
452Takip Et
PinterestSabitle
237Takip Et

Son Eklenenler

Laravel ile 3 Satır Kodla WhatsApp Mesajı Gönderin
Yazılım
AION 2’nin Çıkış Tarihi Yaz Oyun Festivali’nde Duyuruldu
Oyun
OpenAI Hassas Verileri Koruma İçin Lockdown Modunu Tanıttı
Genel
RAM fiyatları yıl sonuna kadar iki katına çıkacak, indirimler eski stokları eritmekten kaynaklanıyor
Donanım
Meta Kendi Yapay Zeka Tabanlı Tıklama Tuzağı Haber Akışını Yaratıyor
Liste
Final Fantasy 7 Minigame Yenilikleriyle Seçim Heyecanı Sunuyor
Oyun
//

Siber güvenlik, yapay zeka ve savunma sanayiinden; finans ve sinema dünyasına uzanan geniş bir yelpaze. Teknomers; teknoloji, strateji ve yazılım dünyasını sade bir dille sizlerle buluşturuyor.

Kurumsal

  • Hakkımızda
  • Gizlilik politikası
  • Tanıtım Yazısı ve Backlink Hizmeti

Kategoriler

  • Teknoloji
  • Oyun
  • Sinema
  • Siber Güvenlik
  • Bilim
  • Finans
  • Dünyadan Güncel Haberler

Populer

  • TV'de Ücretsiz İzlenebilen Şifresiz Erotik Kanallar (2025 Güncel Frekans Listesi)

  • The Last of Us PC Kontrolleri: Hızlı Silah Değiştirme ve Tüm Tuşlar (2025)

  • Hogwarts Legacy'de Odaklanma İksiri Nasıl Yapılır?

Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Bizi Takip Et
© 2026 Teknomers. All Rights Reserved.
Welcome Back!

Sign in to your account

Kullanıcı Adı veya E-posta Adresi
Şifre

Şifrenizi mi unuttunuz?