Кэширование больших объемов контента с помощью PHP + MySQL - PullRequest
3 голосов
/ 28 марта 2012

Я делаю движок / CMS для основанных на истории игр веб-браузера. У меня есть немало данных: персонажи, предметы и истории, с которыми игрок будет взаимодействовать. Цель этого проекта заключается в том, чтобы авторы не были программистами, чтобы создавать повествовательную веб-игру. Чтобы начать создавать контент, потребуются только базовые знания FTP и управления веб-сайтом.

Проблема в том, что я думаю, что база данных будет тормозить эти игры. Каждый персонаж может иметь много для них, и истории будут обширными. Каждый бит истории будет иметь свой собственный письменный текст, который может быть 100 символов или 500 символов. Я никак не могу кешировать это с помощью memcached или чего-то подобного!

К счастью, каждое состояние игры «проталкивается» через развертывание, что означает, что вы не просто добавляете персонажа, а они появляются в мире; Вы должны добавить их, а затем нажать на сборку игры. Я считаю, что могу использовать это в своих интересах. Моя рабочая идея сейчас:

Всего будет три базы данных. Один будет «работающей» БД контента, другой - «живой» БД контента, а затем, наконец, БД, которая содержит все пользовательские данные. (где они находятся в истории, предметы, которые они получили, и т. д.) Моя идея состоит в том, чтобы я протолкнул с работающей БД, полностью уничтожил бы живой и восстановил живой, основываясь на том, что было в рабочей БД во время толчок. Тогда живая БД получит выгоду от возможностей только для чтения: таких как механизм хранения ARCHIVE и немного индексации. Это звучит довольно убедительно, но я не достаточно опытен, чтобы быть уверенным, что это лучший способ заниматься своим делом.

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

1 Ответ

2 голосов
/ 28 марта 2012

То, что вы говорите, звучит так, как будто это сработает. Вам нужно будет построить свой фреймворк, а затем ввести некоторые фиктивные игровые данные, чтобы увидеть, как они реагируют.

Одна приятная вещь в играх - это то, что вы можете избежать многочисленных загрузочных экранов / баров, так что воспользуйтесь этим. :)

...