У меня есть игровой сайт с более чем 200 пользователями. На сайте имеется большая база данных, отслеживающая игры пользователей, и одним из мотивов дальнейшего участия является обширная статистика и рейтинги ( S & R ), которые сайт предоставляет пользователю.
По мере того, как список отслеживаемых S & R увеличивался, некоторые из более сложных вычислений были перемещены в таблицы в базе данных, а не генерироваться на лету для повышения скорости загрузки страницы.
Однако я планирую перейти от расширенного к исчерпывающему S & R к концу года, увеличив общее количество точек данных, доступных пользователю, в 10 раз. I Я уже решил прекратить выполнение запросов на лету и перенести все вычисления в задание cron, но я не уверен, где хранить данные.
Учитывая, что база пользователей <1000, имеет ли смысл размещать эти данные в базе данных или читать / записывать текстовые файлы для статистики каждого пользователя? </p>
Вот основные плюсы и минусы, на мой взгляд:
Хранение S & R в базе данных
+ 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
Хранение S & R в текстовых файлах
+ 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
Но я никогда не делал что-то такого масштаба прежде, поэтому я не совсем уверен (например), является ли проблема с базой данных MySQL более 200 таблиц даже проблемой?
Буду признателен за любые предложения, которые вы можете предоставить! : -)