• 12-11-2012, 22:55:13
    #10
    kişisel fikrim şöyle;

    anlık dinleme olayını, farklı bir tabloda 2 kolon ile çözebilirsiniz. Primary ve clients gibi iki kolon açıp ikinci kolona da index ekleyebilirsiniz. 10k id bile olsa sıkıntısız çalışacaktır.

    yorumlar için cache kullanın ama cache deyince de hemen geri adım atmamak gerekiyor. Şöyle ki birkaç cache metodu geliştirebilirsin sadece bu projeye has olmak üzere;

    Örnek veriyorum:

    1. Bugün saat 00:00 olan süreye kadar tüm yorumlar önbelleklenecek, önceki yorumlarda silme ya da düzenleme işlemi olursa önbellek temizlenecek (tüm yorumlarda sürekli silme ya da düzenleme olmayacağı öngörülüyor), 00:00 'dan sonraki yorumlar için önbellek yok.

    2. 00:00 'dan sonraki yorumlar için farklı ve küçük bir tablo düşünmek mümkün, doğru index yapısıyla çözümlenmeyecek kadar zor değil

    Bunlar aklıma gelenler. Yorumları sürekli yenileme olayı olacaksa 3-10 saniye aralığı uygun.

    Ayrıca küçük projeler için bile şöyle şeyler kullanıyorum. Toplam 3000 makale var diyelim, Bu makalelerin bulunduğu 25 kategori var. Her bir kategori için kaç makalesi var bunları saydırıp stats tablosunda uygun birşekilde kaydediyorum. Toplam şu kadar makalem var bunları da kaydediyorum. Yani şöyle oluyor.

    Kategori => Makale şeklindedir aşağıdaki liste.

    array(
    1=> 250,
    2=> 100,
    3=> 400,
    ...
    'Toplam' => 3000
    );

    bu veriyi tablomda tutuyorum işte article_stats => array gibi.

    Dönen veriden kastım buradaydı, bir tabloda tabii ki gerekli olan tüm kolonları tutabilirsiniz ancak size sürekli gerekli olan verileri de başka bir tabloda güncelleyerek tutabilirsiniz. Böylece dönen verileriniz daha küçük olacak sorguda açılan tablo sunucunuzun kapasitesini çok daha az zorlayacaktır.

    Umarım açık şekilde anlatabilmişimdir. Kolay gelsin
  • 13-11-2012, 00:26:53
    #11
    Üyeliği durduruldu
    çok ilginç fikirler verilmiş gerçekten saniyede 1000 sorgu çok mantıklı hele ki anlık veri için cache süper olur. web programcı cümlesi olayı bitirmiş zaten.
  • 13-11-2012, 03:55:33
    #12
    Üyeliği durduruldu
    MVC mimari deseninden sasmayiniz. PHP, kesinlikle(!) NodeJS ve MySQL uclusunden faydalanabilirsiniz. MySQL cok istikrarsiz olarak tanimlansada bi cok büyük ölcekli projeyi kaldirabilicek kapasitededir. Önemli olan I/O islemlerini duzgun yapabilmek ve mysql serverinizi guzel bi optimize etmekte. Ve suan bunun icin en iyi teknoloji sizinde kullandiginiz JSON formatidir. Kesinlikle sorgularinizdan donen sonuclar

    <div class="box">kelimeler basliklar vs.</div>
    seklinde olmasin. Birakin onlari javascript veya php yorumlasin. I/O islemlerinde arkadaslarinda bahsettigi gibi boyut cok onemli rol oynuyor.

    NodeJS event driven bir platform oldugundan 100% kullanmalisiniz (realtime applicationslar icin suan en iyi socket kutuphanesi olan socket.io ile birlikte) keza, pure js yada jquery ile while dongusu alip sonsuza kadar veri dondurmek oldukca mantiksiz olur.

    Bu sekilde duzgun bi mimariyle kodlanmis sistem cache mekanizmasina ihtiyac kalmadan kararli bicimde calisir. Zaten HTML cache almak gayet mantiksizdir. Cunku HTML cache anlik veri yayini yapamaz ve serverin islemcisini kasan HTML in tarayicida derlenmesi degil, mysqlin yorumladigi sorgulardir. SQL sonuclarinin cache'i alinabilir. Piyasada gayet populer, WordPressinde kullandigi bir class var - ezSQL - ve cache sistemi dahili. Anlattiklarimdan sonra ustune birde bu class ile sql cache aldirabilirsiniz. yada kendi database classinizi yazabilir , JSON formatinda donen veriyi cache aldirabilirsiniz.

    Nereye kadar sizi idare eder tahmin etmek güc, cünkü bir sonraki adimda sistem konfigurasyonu ve webserver optimizasyonuda onemli rol oynuyor. Ancak bu sistemin alternatiflerinden daha uzun omurlu olacagina garanti veririm.

    Kolay gelsin.

    Edit: Unutmusum, konuyla alakasi yok ancak yazmak istedim, error_logs'larinizi php ile bir klasore yonlendirin. Butun loglar orada tutulsun ve bunlari okuyup ciddiye alin. Saatlerinizi, koca gününüzü kurtarir bazen..))
  • 13-11-2012, 13:25:25
    #13
    Üyeliği durduruldu
    Loroz adlı üyeden alıntı: mesajı görüntüle
    MVC mimari deseninden sasmayiniz. PHP, kesinlikle(!) NodeJS ve MySQL uclusunden faydalanabilirsiniz. MySQL cok istikrarsiz olarak tanimlansada bi cok büyük ölcekli projeyi kaldirabilicek kapasitededir. Önemli olan I/O islemlerini duzgun yapabilmek ve mysql serverinizi guzel bi optimize etmekte. Ve suan bunun icin en iyi teknoloji sizinde kullandiginiz JSON formatidir. Kesinlikle sorgularinizdan donen sonuclar

    <div class="box">kelimeler basliklar vs.</div>
    seklinde olmasin. Birakin onlari javascript veya php yorumlasin. I/O islemlerinde arkadaslarinda bahsettigi gibi boyut cok onemli rol oynuyor.

    NodeJS event driven bir platform oldugundan 100% kullanmalisiniz (realtime applicationslar icin suan en iyi socket kutuphanesi olan socket.io ile birlikte) keza, pure js yada jquery ile while dongusu alip sonsuza kadar veri dondurmek oldukca mantiksiz olur.

    Bu sekilde duzgun bi mimariyle kodlanmis sistem cache mekanizmasina ihtiyac kalmadan kararli bicimde calisir. Zaten HTML cache almak gayet mantiksizdir. Cunku HTML cache anlik veri yayini yapamaz ve serverin islemcisini kasan HTML in tarayicida derlenmesi degil, mysqlin yorumladigi sorgulardir. SQL sonuclarinin cache'i alinabilir. Piyasada gayet populer, WordPressinde kullandigi bir class var - ezSQL - ve cache sistemi dahili. Anlattiklarimdan sonra ustune birde bu class ile sql cache aldirabilirsiniz. yada kendi database classinizi yazabilir , JSON formatinda donen veriyi cache aldirabilirsiniz.

    Nereye kadar sizi idare eder tahmin etmek güc, cünkü bir sonraki adimda sistem konfigurasyonu ve webserver optimizasyonuda onemli rol oynuyor. Ancak bu sistemin alternatiflerinden daha uzun omurlu olacagina garanti veririm.

    Kolay gelsin.

    Edit: Unutmusum, konuyla alakasi yok ancak yazmak istedim, error_logs'larinizi php ile bir klasore yonlendirin. Butun loglar orada tutulsun ve bunlari okuyup ciddiye alin. Saatlerinizi, koca gününüzü kurtarir bazen..))
    Dönecek veya Update edilecek Veriler Sadece INTEGER olacaktır stringleri en aza indirgeyecegm.

    socket.io NodeJS ile henüz tanıştım bakalım nasıl şekil alacak göreceğiz.

    "webserver optimizasyon" sonraki adıdma hedeflerimin arasındaydi bunu belirtmeniz güzel bişi ayrıca.

    "Apache konfigurasyonu" tarafımca yadsınabilir. ancak dediğiniz gibi klasik HTMLCahche burda geçersizdir.Bende merakla nasıl bişi çıkacak bekliyorum

    miscel
    Alıntı
    array(
    1=> 250,
    2=> 100,
    3=> 400,
    ...
    'Toplam' => 3000
    );
    bunu stat.json da tutmak mantıklı derleyip oraya import edilebilir

    güzel algoritmalar sunuyorusunuz teşekkür ederm