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: Eager Loading ve Model Mantığı Ayıklama ile Eloquent Sorgularını Optimize Etme
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 » Eager Loading ve Model Mantığı Ayıklama ile Eloquent Sorgularını Optimize Etme

Yazılım

Eager Loading ve Model Mantığı Ayıklama ile Eloquent Sorgularını Optimize Etme

teknomers
Son güncelleme: 3 Mart 2026 13:20
teknomers
Paylaş
Paylaş


Giriş

Bu makale, Laravel uygulamanızda Eloquent sorgularını optimize etmenin yollarını ele almakta, özellikle N+1 sorgu problemini ve paylaşılabilir mantığı model katmanına ayırmayı incelemektedir. Yönetici tablolarında veri filtreleme performansını artırmaya odaklanacağız.


N+1 Sorgu Problemi

N+1 sorgu problemi, uygulamanızın bir kayıt kümesini almak için bir veritabanı sorgusu yürütmesi ve ardından bu kayıtlara ait ilişkili verileri almak için her biri için ek sorgular yürütmesi durumudur. Bizim durumumuzda, Tenant::all(), her kiracı için aboneliklerin tembel bir şekilde yüklenmesi nedeniyle N+1 sorgu problemine neden oluyordu.


Eager Loading ile Aboneliklerin Yüklenmesi

N+1 sorgu probleminden kurtulmak için, abonelikleri kiracılarla birlikte tek bir sorguda almak için eager loading kullanabiliriz. Bu, veritabanı sorgularının sayısını N+1’den 1’e düşürerek performansı önemli ölçüde artırır.

$tenants = Tenant::with('subscriptions')->get();
        


Paylaşılan Mantığı Modelde Ayırma

TenantResource ve UserResource içinde plan filtreleme ile ilgili tekrarlanan mantıklar tespit edildi. Kod tekrarını azaltmak ve sürdürülebilirliği artırmak için bu mantığı Plan modeline taşıdık.


getActiveFilterOptions()

Bu yöntem, farklı kaynaklarda tutarlılığı sağlamak için plan filtreleme seçeneklerini sunar.

// Plan.php
public static function getActiveFilterOptions(): array
{
    return self::query()->pluck('name', 'slug')->toArray();
}
        


getTenantIdsForPlanSlug()

Bu yöntem, belirli bir plan slug’ına bağlı kiracı ID’lerini alır ve filtreleme mantığını Plan modelinde merkezileştirir.

// Plan.php
public static function getTenantIdsForPlanSlug(string $planSlug): array
{
    return Tenant::whereHas('subscriptions', function ($query) use ($planSlug) {
        $query->where('plan_slug', $planSlug);
    })->pluck('id')->toArray();
}
        


Faydalar

  • Geliştirilmiş Performans: Eager loading, N+1 sorgu problemini ortadan kaldırarak veritabanı yükünü azaltır ve yanıt sürelerini iyileştirir.
  • Kod Tekrarı: Paylaşılan mantığın Plan modeline çıkarılması, kod tekrarını azaltır ve sürdürülebilirliği artırır.
  • Bakım Kolaylığı: Filtreleme mantığının merkezileştirilmesi, güncellemeleri ve bakımı kolaylaştırır.


İlerleyen Adımlar

Sık erişilen filtreleme seçenekleri için önbellekleme stratejileri uygulamayı düşünün ve ayrıca sorgu scopes kullanarak model içinde yaygın filtreleme mantığını kapsüllenmiş şekilde inceleyin.

Kaynak: Orijinal Makale

Contents
  • Giriş
  • N+1 Sorgu Problemi
  • Eager Loading ile Aboneliklerin Yüklenmesi
  • Paylaşılan Mantığı Modelde Ayırma
    • getActiveFilterOptions()
    • getTenantIdsForPlanSlug()
  • Faydalar
  • İlerleyen Adımlar
Laravel Fast2SMS v2.0.0 — WhatsApp Desteği, Bildirim Kanalları ve Daha Akıllı Kullanıcı Deneyimi
Şifreli .env Dosyası ile Laravel Uygulaması
PHP 8.4’te Tip Güvenli Koleksiyonlar: Dizilerin Sahip Olmasını İstediğim Özellikler
Açık Kapalı Prensibi (OCP) – DEV Community
Laravel admin araçlarında sürükle-bırak sıralama, göründüğünden daha hızlı karmaşık hale geliyor.
Bu Makaleyi Paylaş
Facebook Bağlantıyı Kopyala Yazdır
Paylaş
Önceki Makale Kritik: UH Kanser Merkezi veri ihlali 1,2 milyon kişiyi etkiliyor
Sonraki Makale Google Home’a büyük güncelleme: Gemini canlı kamera görüntülerini tanımlıyor

Sanal Medya

FacebookBeğen
452Takip Et
PinterestSabitle
237Takip Et

Son Eklenenler

Remarkable Paper Pure ile Neleri Başardık?
Genel
Yarıdan Fazla Milyon Güç Aletleri Pili Geri Çağrıldı
Liste
Okula Dönüş İçin En İyi Laptop ve Teknoloji Fırsatları
Donanım
Tasarruf uygulamam için anahtar kelime araştırması yaptım. Sonrasında arama sonuçlarına baktım.
Yazılım
Netflix Oyun İşinde Büyük Bir Büyüme Yaşandı, Gelecek Hazineyi Bekliyor
Oyun
Trump’ın Konuşması İsyan Yasası’na Giden Yolu Açtı mı?
Genel
//

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?