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