• 22-12-2017, 16:21:18
    #1
    Selamun Aleyküm Dostlar,

    Kodlamakta olduğum bir uygulamada fikir, işleyiş olarak takıldığım bir nokta var. Konu hakkında fikri olan kardeşlerim yardımcı olup fikirlerini söylerse sevinirim.



    Şimdi Şöyle;

    2 Adet A1.php ve B1.php sayfalarım mevcut diyelim.

    A1.php Sayfasında 100 adet obje (eşya, nesne vs. ) mevcut. Ben bu 100 adet nesnenin veritabanında bulunan önceki ve yeni bazı özellik yada değerlerini öğrenmem için her biri için ayrı ayrı sorgu yazmam gerekiyor. Bu da toplamda 100 adet sorgu ediyor.. Ki bu durum sayfanın aşırı yavaşlamasına sebep oluyor.

    B2.php sayfasında ise A1.php sayfasında ihtiyaç duyduğum 100 adet sorguyu tek bir fonksiyonda topladım. Fazladan kod yazmakdan kurtulduk. Bu sorgularda değişen tek şey eşya, nesnenin İD değeri. Sonra bu fonksiyon sayfasını a1.php içinden include ederek çağırıp kullandım..


    Sonuç :
    Kodlar, fonksiyon çalışıyor, yapmak istediğimi yaptım, istediğim verileri elde ettim. İşleyişte bir sorun problem yok. Tek sorun bu işlemi yaparken 100 sorgu sebebiyle uzun vakit geçmesi. En az 8~10 sn geçiyor neredeyse.


    İstediğim:
    Sayfada, öyle yada böyle 100 adet sorgu çalışacak, bu durumdan kaynaklanan yavaşlama sorununu hangi yol, yöntem ile çözebilirim ?
  • 22-12-2017, 16:37:27
    #2
    Sorgularda dönecek değer sayısı için herhangi bir sınırlandırma kullandınız mı?
  • 22-12-2017, 16:41:12
    #3
    Bluntk adlı üyeden alıntı: mesajı görüntüle
    Sorgularda dönecek değer sayısı için herhangi bir sınırlandırma kullandınız mı?
    Sorguda tek şart, filtre id değeri.. örneğin; select * from tabloadi where urun_id=1 gibi...
  • 22-12-2017, 16:46:18
    #4
    sql join işinizi görmüyormu
  • 22-12-2017, 16:48:12
    #5
    cleaner80 adlı üyeden alıntı: mesajı görüntüle
    sql join işinizi görmüyormu
    Join olayı farklı tablolarda ortak değerler olunca kullanılır. iki tabloyu birleştirmek ve kullanmak için.. Ben ise tek bir tabloya 100 sorgu çekiyorum. siz konuyu yalnış anladınız sanırım.
  • 22-12-2017, 17:38:42
    #6
    Elinizde A1 tablosu var bunda ürünler var. bu ürünlerin idlerini alıp, daha sonra her biri için özelliklerin oldugu tabloya giderek ozelliklerini mi alıyorsunuz? dogru mu anladım?
  • 22-12-2017, 22:48:30
    #7
    Kimlik doğrulama veya yönetimden onay bekliyor.
    1. SELECT * FROM diye SQL kodu yazma, tüm alanları tek tek yaz (SELECT uye.id, uye.rumuz, uye.sifre FROM uye) gibi
    2- WHERE olarak ne kullanıyorsan o tablodaki field e İNDEX değeri ver.
    3- Memcache gibi sorgu bazlı önbellekleme kullanırsan sorguyu veritabanından değil önbellekten çeker. (0.01 saniye sürer). Memcache nedir bilmiyorsan ufak bir araştırma ile basit bir şekilde kullanabilirsin.
  • 23-12-2017, 01:55:30
    #8
    WEBKARTALI adlı üyeden alıntı: mesajı görüntüle
    Sorguda tek şart, filtre id değeri.. örneğin; select * from tabloadi where urun_id=1 gibi...

    mysql in işinizi görür diye düşünüyorum tek sorguda.
    Örnek;

    select * from tabloadi where urun_id IN(1,5,101,211) gibi