• 30-08-2010, 04:49:51
    #1
    Üyeliği durduruldu
    Merhaba,
    elimde 500 kullanıcının 5k fotoğrafı var.

    fotoğraflar tablosunda fotoğrafların dosya adı, açıklaması, sahibinin id si, ekleme tarihi var.

    kullanıcı profilinde, "fotoğraflar tablosundan sahibinin id si XXX olan fotoğrafları listele" komutu kullanmak db yi çok yorar mı ?

    daha iyi bir alternatif önerebilecek olan var mı ?
  • 30-08-2010, 06:39:44
    #2
    Eposta Aktivasyonu Gerekmekte
    resim sitelerine upload edip hotlink edebilirsiniz başka da mevcut yol yoktur galiba..
  • 30-08-2010, 07:05:59
    #3
    Üyeliği durduruldu
    hocam sorun fotoğrafları host etmek değil.
    5000 satır bulunan bir tabloda id araması yapmak.
  • 30-08-2010, 09:05:21
    #4
    Sorun yapmaz, İd satırını index uniq yap, Ben 20 milyonluk db de, 5-6 sn yede arama yapıyorum.
  • 30-08-2010, 09:24:19
    #5
    Üyeliği durduruldu
    db acisindan sorun olmaz. ama host acisindan klasorlere bolerek giderseniz performansa etkisi olur.

    hepsi tek klasorde olursa sistem yavaşlar ve hantallaşır
  • 30-08-2010, 10:15:49
    #6
    Üyeliği durduruldu
    teşekkür ederim.

    sdemirkeser hocam, peki sizce her üye için yeni randomize klasör mü açmalıyım, yoksa atıyorum 100 dosya oldukdan sonra yeni randomize klasör mü açtırmalıyım ?

    her üye için dizin açıp 500,1000 dizin oluşturmak mantıklı olur mu ?
  • 30-08-2010, 10:32:52
    #7
    Üyeliği durduruldu
    Levye adlı üyeden alıntı: mesajı görüntüle
    teşekkür ederim.

    sdemirkeser hocam, peki sizce her üye için yeni randomize klasör mü açmalıyım, yoksa atıyorum 100 dosya oldukdan sonra yeni randomize klasör mü açtırmalıyım ?

    her üye için dizin açıp 500,1000 dizin oluşturmak mantıklı olur mu ?
    hocam benim şahsi kanaatim olarak 1000 civari olacak şekilde klasörlere bölerek giderseniz iyi olur.

    klasör isimleri random olmasi şart degil onlarda 1,2,3 gibi sirali gidebilir. dosya sayisinin id den vs den sayip. adet 1000 olunca yeni bir klasöre geç mantigi yapabilirsiniz. son açtığınız klasör numarasinida bir yerde tutarsaniz gayet pratik olur
  • 30-08-2010, 11:16:03
    #8
    Yada ;
    Klasörler içinde veritabanı açarsınız her oraya resim eklendiğinde klasor veritabanın sayac=sayac+1 yaparsınız 1.000 olunca diğe klasöre geç dersiniz en azından 1 klasörde nekadar var onuda görürsünüz (:
  • 30-08-2010, 11:23:51
    #9
    Üyeliği durduruldu
    Kullanıcı adının ilk harflaerine göre de saklayabilirsiniz sitelerimin birinde böyle bir saklama metodu var

    function check_dir($dir_path)
        {
            return (is_dir($dir_path) ||  @mkdir($dir_path,0700,true));
        }
    
    
        function user_dir($username)
        {
            $username = strtolower($username);
            $root = 'uploads/photos';
            $user_dir = $root.'/'.$username[0].'/'.$username[0].$username[1];
    
            if($is_dir =   check_dir($user_dir))
            {
                return $user_dir;
            }
            else
            return $is_dir;
        }
    sadece resim adlarını saklarsınız, kullanımı da

    $resim = user_dir('D3LLy').'/'.$resim_adi;
    # 'uploads/photos/d/d3/resim.jpg'  olarak döner. bu klasörler de eğer yoksa oluşmuş olur.