Ben kullanıcı mesajlarda oldukça çok sayıda görebilirsiniz bir site var. Bu yapılır her zaman ben UPDATE table SET views=views+1 WHERE id = ?
benzer bir sorguyu çalıştırın. Bununla birlikte, bu yaklaşımın dezavantajları vardır:
- Pageviews meydana geldiğinde izleme yolu yok - onlar sadece artırılır.
- Genellikle kadarıyla anladığım kadarıyla, bu nedenle yavaş bu satırın bir sonraki SEÇİMİ yapma, sıranın MySQL önbelleğini temizleyin olacak tablo güncelleniyor.
Therefore I consider employing an approach where I create a table, say:
object_views { object_id, year, month, day, views }
, so that each object has one row pr. day in this table. I would then periodically update the views column in the objects
table so that I wouldn't have to do expensive joins all the time.
Bu Aklıma basit çözüm, ve o da en az performans etkisi ile biri gibi görünüyor. Katılıyor musunuz?
(Site PHP 5.2 üzerine inşa edilmiş, 1.4 Symfony ve durumda Doktrin 1.2 merak)
Edit:
The purpose is not web analytics - I know how to do that, and that is already in place. There are two purposes:
- Kullanıcı Belirli bir nesne bugün ya da dün, örneğin gösterilmiştir kaç kez görmek için izin verir.
- Sitenin moderatörleri Google Analytics, Omniture veya ne olursa olsun çözüm girmeden simple görünümü istatistikleri görmek için izin verir. Ayrıca, backend sonuçlar gerçek zamanlı olmalıdır, bir özellik wich GA şu anda sunamıyoruz. Ben (gerçek zamanlı değil, GA javascript gerektirir) kullanım verilerini almak için Analytics API'sini kullanmak istemiyorum.