Я создаю игру ajax tic tac toe в PHP/MySQL. Предпосылка игры заключается в том, чтобы иметь возможность делиться URL-адресом, похожим на mygame.com/123, с друзьями, и вы играете в несколько одновременных игр.PHP, MySQL, проблема масштабирования Memcache/Ajax
Способ, которым я настроен, заключается в том, что файл (reload.php) вызывается каждые 3 секунды, пока пользователь просматривает пространство своей игровой площадки. Этот reload.php создает свои игровые доски, а результат (html) заменяет их текущую игровую панель (таким образом, показывающие игры, в которых это их очередь)
Первоначально я полностью его построил с PHP/MySQL и имел нулевое кэширование. Друг дал мне предложение попытаться сделать всю временную/быструю прочитанную информацию через memcache (сохранение ходов и идентификационных совпадений), а затем построение игровых плат из этой информации.
Моя проблема заключается в том, что оба решения сталкиваются с стеной, когда около 30-40 активных пользователей работают примерно с 40-50 играми.
Он работает на VPS с VPS.net с двумя узлами. (Выделенный процессор: 1,2 ГГц, оперативная память: 752 МБ)
Каждый вызов для reload.php peforms 3 выбирает и 2 вставляет запросы. Размер вытаскиваемых данных ничтожно мал. Те же действия происходят на index.php для построения плат для первоначального посещения.
Теперь, когда предыстория делается, на мой вопрос:
Будет ли быть узким местом в том, что каждый пользователь опрашивает же файл каждые 3 секунды, чтобы восстановить свои gameboards, и что все пользователи сидят на индекс. php, с которого вызовы AJAX выполняются внутри HTML.
Если да, то возможно ли распространять вызовы пользователей по набору файлов, предназначенных для создания игровых плат (например, reload1.php 2, 3 и т. Д.), И направлять пользователей в соответствующий файл. Это облегчит давление?
Долгосрочное объяснение; однако мне больше нечего было просить.
Большое спасибо за понимание.
Почему это хранится в базе данных? Почему бы просто не использовать memcached? –