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: cursor() veya chunk()
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 » cursor() veya chunk()

Yazılım

cursor() veya chunk()

teknomers
Son güncelleme: 20 Mart 2026 12:29
teknomers
Paylaş
Paylaş

Laravel’da, cursor() metodu, büyük veritabanı veri setleri üzerinden etkili bir şekilde iterasyon yapmak için kullanılır. Bu yöntem, bellekte yalnızca tek bir kaydı tutarak çalışır. get() metodunun aksine, tüm sonuç kümesini bir diziye yüklemek yerine, cursor() PHP jeneratörlerini kullanarak kayıtları birer birer verir.

Contents
  • 1. Temel Kullanım
  • 2. Ana Özellikler
    • Diğer Yöntemlerle Karşılaştırma
  • Her Birini Ne Zaman Kullanmalısınız?
    • Güncelleme veya ağır işlem için chunk() kullanın.
    • Büyük veri kümesi (1M+ kayıt) veya akış için cursor() kullanın.
    • Küçük koleksiyonlar için basit iterasyonlarda each() kullanın.

1. Temel Kullanım

cursor() metodunu, Eloquent veya Query Builder zincirinin sonunda çağırabilirsiniz. Bu, üzerinde döngü yapabileceğiniz bir LazyCollection örneği döner.

use App\Models\User;

foreach (User::where('active', true)->cursor() as $user) {
    // Tek bir kullanıcıyı işleme al
    echo $user->name;
}

2. Ana Özellikler

  1. Tek Sorgu Çalıştırma: chunk() metodu, her grup kaydı için yeni bir sorgu çalıştırırken, cursor() yalnızca bir SQL sorgusu çalıştırır.
  2. Hafıza Verimliliği: Tüm alınan nesneler için büyük bir koleksiyon oluşturmaya gerek kalmadığı için bellekteki kullanım önemli ölçüde azalır.
  3. Lazy Collections: Laravel 6.0’dan itibaren, cursor() bir LazyCollection döner; bu sayede filter(), map() ve each() gibi koleksiyon metodlarını yüklemeden zincirleyebilirsiniz.
  4. Eager Loading Sınırlaması: with() metodu ile cursor() kullanmak verimsiz olabilir çünkü Laravel hala tüm ana ID’leri yüklemek zorunda kalabilir, bu durum bazı bellek avantajlarını bertaraf edebilir.

Diğer Yöntemlerle Karşılaştırma

cursor() bellek açısından son derece verimlidir, ancak Laravel hala chunk() metodunu içermektedir çünkü her iki yöntem de farklı sorunları çözmektedir. chunk() metodunu, toplu işlemler (örneğin, kayıt güncellemeleri) yaparken veya ilişkileri yüklemek istediğinizde kullanın; cursor() ise bellek öncelikli olduğunda ve yalnızca veri okuma işlemi yürüttüğünüzde tercih edilmelidir.

Her Birini Ne Zaman Kullanmalısınız?

Doğru seçim, belirli görevinize bağlıdır:

Güncelleme veya ağır işlem için chunk() kullanın.

  • Neden: Verileri gruplar halinde (örneğin, her seferinde 1,000) işleyerek, veritabanı işlemleri için daha hızlıdır; kayıt başına toplam yükü minimizasyon eder.
  • Güvenlik Önlemi: Aynı kayıtları güncellerken chunkById() kullanarak veri atlamaları veya tekrarlarını önleyin.

Büyük veri kümesi (1M+ kayıt) veya akış için cursor() kullanın.

  • Neden: Tek bir sorgu kullanarak birer birer kayıt alır; sonucun boyutundan bağımsız olarak bellekteki kullanım sabit kalır.
  • En İyi Kullanım: Büyük bir CSV oluşturmak gibi basit dışa aktarma işlemleri veya birçok ilişkili modeli yüklemenize gerek olmayan okuma döngüleri için idealdir.

Küçük koleksiyonlar için basit iterasyonlarda each() kullanın.

  • Not: Büyük veri setleri bağlamında each(), genellikle bir chunk veya koleksiyon üzerinde bir metod olarak kullanılır. Model::all()->each() çağrısı, her şeyi önce belleğe yükleyecektir; bu da büyük setler için tehlikeli bir durumdur.

Kaynak: Orijinal Makale

Laravel’de HTML Faturayı Görsele Dönüştürme
Sıfırdan Depoya: Tam Deploynix Kurulum Kılavuzu
Laravel Yönlendirmesini Anlamak: Örneklerle Tam Kılavuz (Laravel 12)
PHP’de Para İşlemleri: Değer Nesnesi Yaklaşımı
Laravel Gözlemcilerinden Neden Ayrıldım?
Bu Makaleyi Paylaş
Facebook Bağlantıyı Kopyala Yazdır
Paylaş
Önceki Makale Mart Güncellemeleri: Teams ve OneDrive Girişleri Acil Krizde!
Sonraki Makale Karpetleri Unutturacak Samimi Dekorasyon Oyunu: Hozy

Sanal Medya

FacebookBeğen
452Takip Et
PinterestSabitle
237Takip Et

Son Eklenenler

Bu Yıl Süper El Niño mu? Dünya İklimini Tersine Çevirir mi?
Genel
Theker 85 Milyon Dolar Topladı, Sıradan Robot Fabrikası İçin İlk Adımını Attı
Genel
Oyun Dünyasında Devrim Yaratacak Hız ve Performans
Oyun
Cenneti Aşan Mücadele Sistemi İki Elinizi Farklı Rollerle Kullanıyor
Oyun
Apple’ın Kamerası, AI ile Süper Güçler Sunabilir mi?
Genel
Jeff Bezos’un Prometheus’u, fiziksel dünya için 12 milyar dolar topladı
Yapay Zeka
//

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?