join işi kolaylaştırır. ama mysql kararsız bir database. eğer 50 satır kategori 100 satır kayıt ve 30 satır user varsa problem yok.
ama 50 satır kategori 1 milyon satır kayıt ve 250.000 user varsa geçmiş olsun.
cevap süreleri uzuyor işlemci kullanımı tavan yapıyor.
muhtemelen sebebi veritabanının ilişkiyi kurabilmek için kendi içinde gerçekleştirmek zorunda olduğu geçişler.
bunun yerine sayısal primary id üzerinden sorgulanan bir sistem ile, doğru index alanları eklenmiş tablolar arasında php yi gezzdirmek daha doğru. bir sorgu yap 1 milyon kayıt içinden tek satır iste primary sayısal id ile milisaniye düzeyinde yanıt geliyor. bu gelen satırdan user_id ve category_id al 2 sorgu ile user bilgisi çek, kategori bilgisi çek. 3 işlem de milisaniye düzeyinde ve 1 saniyeyi bulmaz.
ama sen join yaptığında veritabanı bir kaç saniyede yanıt veriyor. muhtemelen sebebi join dediğinde satırları bir birine bağlayabilmek için 2 tabloyu birleştirmek için aynı anda kullanıyor. join yapılan tablo sayısı ve bu tablolardaki kayıtlar arttıkça yanıt süresi çok kararsız hale geliyor, işlemci %100 üzerine vuruyor.
peki bana daha önce anlattığınız gibi rand'dan kurtulabiliyorum ama join yapısından nasıl kurtarabilrim. rica etsem bu sorguları değiştirebilmeniz mümkünmüdür? görmüş ve öğrenmiş olurum.