PHP döngüler hakkında sorum ?
6
●195
- 15-08-2019, 15:44:18Hata yakalama , gelen veriler ve iç kontrolleri düzgün yapmanız gerekir. Biryerlerde sonsuz döngüye girerseniz veya dışarıdan manipüle edilebilecek bir yapı kurarsanız maliyeti yüksek olur.
Veritabanı olarak ne kullandığınızı da yazsaydınız yorum yapacak kişiler için daha iyi olurdu. - 15-08-2019, 17:38:58503 Service Unavailable ve 502 Bad Gateway hataları sunucunun cevap veremeyeceği durumlarda karşınıza çıkar. Kullanmış olduğunuz döngülerde yapacağınız bir hata sonsuz döngü sebebiyle sunucunuzu kitleyebilir ve bu hataları alabilirsiniz. Reset attığınızda otomatik olarak bu işlem durmuş olur ve sunucunuz yeniden ayağa kalkar. Hangi kodu yazdıktan sonra bu hataları aldığınızı söylerseniz, hatanızı görebiliriz.bero adlı üyeden alıntı: mesajı görüntüle
- 16-08-2019, 11:34:27Doğrudan etkileyecektir. Bu yüzden olabildiğince az SQL sorgusu yaz. Hepsini tek sorguda birleştirmeye çalış. JOIN vs. kullanabilirsin.
Örneğin her kullanıcıyı çekip sonra foreach ile döngüye sokup sonra o kullanıcılara ait postları çekmek yerine tek seferde hem kullanıcıları hem de postları çekmelisin. SQL'in sağladığı çok büyük avantajlar var. Kendi adıma maalesef çok geç farkettim. - 16-08-2019, 11:46:58örnek veriyorum veritabanından sık sık kullanıcı adını çekmek yerine session'a atsam ordan kullansam daha iyi verim alırım mı ? yoksa sessionda veri tabanı kadar çok mu cpu falan yer.magicphp adlı üyeden alıntı: mesajı görüntüle
- 16-08-2019, 17:46:23veritabanından veri çekmek yerine alternatifin varsa onu kullanman daha hızlı olur. normal ayarlarda session dosyaya yazılır. arkaplanda o dosyadan okunur veriler. session için redis yada memcached kullanma alternatifleri de var o zaman da az bişey ram kullanılır fakat ram a erişim dosya sistemine erişimden daha hızlı olduğundan, gözle görülecek kadar olmasa da + hız katar.
döngüler konusunda ise mesela foreach while dan daha hızlıdır. ama bu hız farkı aşırı yüksek işlemlerde fark edilir.
genel geçer tüm yazılımlarda hız sorunun birincil sebebi yanlış sql queryler kullanılmasıdır. en basitinden bir örnek vereyim:
örnek tablomuzun ismi veri sutun adı da id olsun. id sutunu int 11.
"select * from veri where id=1" ile "select * from veri where id='1'" arasında hız olarak dağlar kadar fark var. tabi select * demek yerine select veri1,veri2,... gibi istenieln sutunları belirtmek de hız katar. ayrıca framework kullanıyorum, framework benim yerime querleri kendisi hazırlıyor demeyin. piyasadaki çoğu frameworkun sql queryleri hep sıkıntılıdır.