• 06-12-2009, 22:32:10
    #19
    Kimlik doğrulama veya yönetimden onay bekliyor.
    aşağıdaki gibi düzeltin

    function rastgele_resim($limit="") { 
    if(empty($limit)){
    $limit =1
    }
    
    
        global $wpdb;     
     $sorgu = mysql_query("SELECT resim FROM $wpdb->rastgeleresim ORDER BY rand() LIMIT 0,$limit"); 
        while($y=mysql_fetch_object($sorgu)) { 
         
           echo $y->resim;
        }
    }
    fonksiyonu çağırırken şöyle çağırın

    rastgele_resim(10); // burada 10 adet resim döndürür

    ancak siz resimleri mysql e gömmüşseniz hata yapmışsınız demektir o tablo şişecektir. resimleri bir klasöre uplıad edip adlarını veritabanına kaydetmeniz daha sağlıklı ve performanslı olacaktı

    diğer taraftan veri motonun MyISAM olarak ayarlamanız performans acısından ciddi bir zaman kazandıracaktır eger veri moturu InoDB ise MyISAM olarak değiştirmenizi öneririm
  • 06-12-2009, 22:38:26
    #20
    Üyeliği durduruldu
    şurada 5-6 yöntem verilmiş dediğim şekilde, incelemenizi öneririm.

    http://www.gorilla3d.com/v8/fast-ran...-in-mysql.html
  • 06-12-2009, 22:42:48
    #21
    Üyeliği durduruldu
    Hakikat adlı üyeden alıntı: mesajı görüntüle
    aşağıdaki gibi düzeltin

    function rastgele_resim($limit="") { 
    if(empty($limit)){
    $limit =1
    }
    
    
        global $wpdb;     
     $sorgu = mysql_query("SELECT resim FROM $wpdb->rastgeleresim ORDER BY rand() LIMIT 0,$limit"); 
        while($y=mysql_fetch_object($sorgu)) { 
         
           echo $y->resim;
        }
    }
    fonksiyonu çağırırken şöyle çağırın

    rastgele_resim(10); // burada 10 adet resim döndürür

    ancak siz resimleri mysql e gömmüşseniz hata yapmışsınız demektir o tablo şişecektir. resimleri bir klasöre uplıad edip adlarını veritabanına kaydetmeniz daha sağlıklı ve performanslı olacaktı

    diğer taraftan veri motonun MyISAM olarak ayarlamanız performans acısından ciddi bir zaman kazandıracaktır eger veri moturu InoDB ise MyISAM olarak değiştirmenizi öneririm
    hayır, akıllı rand işlemi yapacak bir fonksiyon veya sql yazılmazsa rand() yine kasacaktır. rand() için LIMIT 0, 30 gibi bir kullanımla performans artırılamaz, rand bütün kayıtları baz alır, sistemi yine yorar, limit ile sadece dönecek kayıt sayısını belirlersiniz.

    WHERE ile koşullandırılmış bir sql oluştup o koşul ile rand() kullanan bir php betiği yazılabilir.
  • 06-12-2009, 22:46:21
    #22
    devturkeli teşekkürler
    verdiğin linki inceliyorum
  • 06-12-2009, 23:08:55
    #23
    devturkeli adlı üyeden alıntı: mesajı görüntüle
    şurada 5-6 yöntem verilmiş dediğim şekilde, incelemenizi öneririm.

    http://www.gorilla3d.com/v8/fast-ran...-in-mysql.html
    Buradaki örneklere göre

    $sorgu = "SELECT resim FROM $wpdb->rastgeleresim ORDER BY RAND() LIMIT 0, $yazi_sayisi";
    yerine
    $sorgu = "SELECT resim FROM $wpdb->rastgeleresim WHERE id = ROUND(".lcg_value()." * (SELECT COUNT(*) FROM $wpdb->rastgeleresim)) LIMIT 1";
    kodunu kullandım üstteki kod 0.6 seconds alırken alttaki 0.0001 alıyormuş, bu kadar fark eder mi bilmem, ama bir nevi optimasyon çabası içindeyim
  • 06-12-2009, 23:13:17
    #24
    Üyeliği durduruldu
    EmreUnan adlı üyeden alıntı: mesajı görüntüle
    devturkeli teşekkürler
    verdiğin linki inceliyorum
    rica ederim kolay gelsin
  • 07-12-2009, 00:28:38
    #25
    Size lucine konusuna bakmanizi oneririm. MySQL'e gitmek yerine lucine'den aliyorsunuz. lucine indexleme olaylarinda cok basarili. Biraz advance kacabilir ama.
    Kolay Gelsin.
  • 07-12-2009, 01:27:31
    #26
    Üyeliği durduruldu
    lucine değil lucene. Evet lucene sisteminin pear sınıfları bile var alternatif olarak kullanılabilir.