Ben 200 + kullanıcıları ile bir oyun odaklı web sitesi var. Site büyük bir veritabanı izleme kullanıcı oyunlar vardır, ve sürekli katılım için motivasyonları biri kapsamlı istatistikler ve sıralamalar (S&R) hangi ile site kullanım sağlar olduğunu.
S & izlenen Rs liste büyüdükçe, daha karmaşık hesaplamalar bazı sayfa yükleme hızını artırmak amacıyla on-the-fly oluşturulur ziyade, veritabanı içinde tablolar taşındı.
Ancak, 10 faktör ile kullanıcı için kullanılabilir datapoints toplam sayısını artırarak, yıl sonuna kadar exhaustive strong> S & Rs geniş hareket planlıyoruz. Ben oldum zaten on-the-fly sorguları yapıyor durdurmak ve bir cron işi için tüm hesaplamaları taşınmaya karar verdi, ama nereye veri depolamak için emin değilim.
Bir kullanıcı tabanı <1000 göz önüne alındığında, bu veritabanı içinde bu veri yerleştirmek daha mantıklı veya her kullanıcının istatistikleri için bir metin dosyası yazmak / okumak istiyorsunuz?
Bunlar aklımda ana artıları ve eksileri vardır:
Storing S&Rs in the Database
+ cross-user comparisons are easy and fast
+ faster cron jobs because there's no need to write to many, many files
- database table count will jump from ~50 to 200+ (at least)
- one point of failure (database corruption) for all site data
- modifying S&R structure requires modifying database as well
Storing S&Rs in Text Files
+ neatly organized and distributes data corruption risk
+ database is easier to navigate
+ redesigning S&R structure is done by simply modifying script and
overwriting all text files, rather than adjusting database tables
- cron job will have to read/update XXX files each time
- cross-user comparisons are difficult and time-consuming
Ama daha önce bu büyüklükte bir şey yapmadım, bu yüzden 200 + tablo MySQL veritabanı bile gerçekten bir sorun olup olmadığını (örneğin) gerçekten emin değilim?
Ben size sağlayabilir önerilerinizi takdir ediyorum! :-)