SevkiBilge

PHP'de milyonlarca kayıt için en performanslı döngü yöntemi hangisi?

TolgaKoseDev612
· 5 gün önce · 2 görüntülenme
Arkadaşlar merhaba, uzun zamandır PHP ile uğraşıyorum ve şu sıralar elimde yaklaşık 5-6 milyon satırlık bir veri setiyle çalışıyorum. Bu verileri işlerken for, foreach, array_map gibi döngü yöntemlerini deniyorum ama hangisinin gerçekten en performanslı olduğu konusunda kafam karıştı. Özellikle bellek kullanımı ve işlem süresi açısından büyük farklar oluyor. Mesela foreach'in okunabilirliği güzel ama bazen bellek patlamasına neden olabiliyor. For döngüsü daha kontrollü geliyor ama index işlemleri ekstra yük bindiriyor mu emin değilim. Sizce milyonlarca kayıt için en sağlıklı döngü yöntemi hangisi?

Küçük verilerde fark etmiyor ama büyük verilerde gerçekten can sıkıcı olabiliyor. Ben genelde array_chunk ile veriyi parçalayıp foreach kullanıyorum, böylece bellekte aynı anda tüm verileri tutmamış oluyorum. Ama yine de alternatif çözümler var mı diye merak ediyorum. Mesela generator kullananlar var, yield ile verileri adım adım işlemek daha mı verimli olur? Ya da array_map ile callback kullanarak bellek yönetimini daha iyi yapabilir miyiz? Bu konuda deneyimli arkadaşlar varsa fikirlerini duymak isterim.

Ayrıca veritabanı tarafından çekerken de sıkıntı yaşıyorum. PDO ile fetchAll yapıp döngüye sokmak yerine fetch ile her satırı teker teker çekmek daha mı mantıklı? Yoksa LIMIT ve OFFSET ile sayfalama yaparak mı ilerlemeliyim? Elimdeki verileri işlemek için bir kereye mahsus bir script yazıyorum, sürekli çalışan bir sistem değil, ama yine de sürenin birkaç saat yerine birkaç dakikaya inmesini istiyorum. Sizin önerileriniz neler, hangi döngü yapısı ya da hangi teknik sizi kurtardı?
0 yanıt

Henüz yanıt bulunmuyor. İlk yanıtlayan siz olun!

Yanıt yazmak için giriş yapın.