Исчерпывающая статистика на основе PHP - текстовые файлы на стороне сервера или таблицы MySQL? - PullRequest
0 голосов
/ 14 сентября 2010

У меня есть игровой сайт с более чем 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 таблиц даже проблемой?

Буду признателен за любые предложения, которые вы можете предоставить! : -)

1 Ответ

1 голос
/ 14 сентября 2010

Любое популярное программное обеспечение для баз данных должно быть в состоянии обрабатывать миллионы записей, с 200+ таблицами это не проблема.

Коррупция маловероятна, но на сайте такого рода вы должны делать резервные копии довольно часто, и предпочтительно хранить копию вне сервера - использование отдельных файлов распределяет и уменьшает вероятность общего сбоя, но также есть небольшой шанс проблем, возникающих.

Программное обеспечение базы данных отлично справляется с выполнением задач над своими данными, использование плоских файлов, вероятно, заставит вас написать собственный метод для их обработки, и это может легко оказаться серьезной задачей, за счет дополнительной потери потери скорости по сравнению к использованию базы данных (я просто предполагаю, что, возможно, я ошибаюсь).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...