Duyuruyu Kapat
Facebook Gözat
Twitter Gözat

Hangisini tercih etmeliyim?

Konu, 'PHP' kısmında SeFFaF tarafından paylaşıldı.

  1. SeFFaF

    SeFFaF Üye

    Kayıt:
    5 Mart 2006
    Mesajlar:
    75
    Beğenilen Mesajlar:
    0
    Şehir:
    İstanbul
    Merhabalar,

    Hazırladığım portalda Türkçe İngilizce metinleri veritabanından yazdırırken aşağıdaki yapılardan hangisi daha mantıklı, hangisinin performansı daha etkilidir?

    1. YÖNTEM
    PHP:
    function Text() {
        global 
    $LangID;
            
    $Query mysql_query("SELECT * FROM static_definition WHERE LangID='$LangID'");
                    while(
    $Row=mysql_fetch_object($Query)) {                           
                        
    $Text [$Row->TextName] = $Row->Text;
                    }
            return array(
    $Text);   
    }
    list(
    $Text) = Text();    
    1. YÖNTEM KULLANIMI
    PHP:
    echo $Text['Home']; // Ana Sayfa
    2. YÖNTEM
    PHP:
    function Text($textName) {
        global 
    $sql,$LangID;
            
    $query $sql->query("SELECT * FROM static_definition WHERE TextName='$textName' and LangID='$LangID'");
            
    $row $query->fetch_assoc();

        return 
    $row['Text'];   
    }
    2. YÖNTEM KULLANIMI
    PHP:
    echo Text('Home'); // Ana Sayfa
    Bu tabloda şuan 1.000'e yakın kayıt var. 1. yöntemde malumunun tek fonksiyon çağırılarak 1.000 kayıtlık bir dizi oluşuyor. 2. Yöntemde ise her kayıt için fonksiyon çağırılıyor dönen 1 kayıtlık dizi oluşuyor.

    Toparlayacak olursak tek sayfa içerisinde tahmin ediyorum ki aynı anda en fazla 100 kayıt kullanıyorumdur.

    1. Yöntem: 1.000 kayıtlı dizinin 100 tanesini kullanmak mı mantıklı?
    2. Yöntem: 100 kez aynı fonksiyonu çağırmak mı mantıklı?

    Bilgi ve paylaşımlarınız için şimdiden teşekkür ederim.
     
  2. dinlex

    dinlex Aktif Üye

    Kayıt:
    23 Aralık 2016
    Mesajlar:
    341
    Beğenilen Mesajlar:
    88
    Şehir:
    Hatay
    Veri tabanına bağlamak biraz yorucu bir iş. Her bağlantı öncesi izin vs. alınıyor sanırım o yüzden sistemi yoruyor yani.
    Döngülü işlemlerde de hep tek sorguyla işinizi halledin diyorlar, yani döngü içinde şart değilse veritabanına ekstradan bağlanmayın diyorlar.
    O yüzden tek sorgulu seçenekler daha avantajlı bence (öğrendiğim kadarıyla).

    Bunu da şöyle bir örnekle anlatayım:
    A noktasında bir kamyonunuz var. B noktasındaki 100 demiri A noktasına getireceksiniz. Tek tek gidip getirmek mi daha kolay olur yoksa tek seferde kamyonu doldurmak mı?

    Başka bir deyişle; Bir defa veritabanına bağlanlanmak için 2 saniye harcıyorsak, veritabanına bir defa bağlandıktan sonra içindeki 1000 verinin hepsini daha seri bir şekilde, atıyorum 1 saniyede çekeriz.

    O yüzden kısaca benim tavsiyem ve öğrendiğim kadarıyla tek sorgu olsun, 1000 verinin hepsini çekin. Daha hızlı olur.
    Yanlışım varsa affola...
     
  3. ErtiAV

    ErtiAV Daimi Üye

    Kayıt:
    14 Nisan 2009
    Mesajlar:
    539
    Beğenilen Mesajlar:
    3
    Şehir:
    sakarya
    Yüksek bir veritabanı trafiğiniz yoksa nasıl çektiğiniz çok bişey ifade etmez. Eğer trafik çok yüksekse diller için sunucu üzerine dosyalar yerleştirip dosyadan daha performanslı çalışmasını sağlar. Değişken tanımlarınızı sadece veritabanında tutmanız yeterlidir.