Как реализовать минимальную нагрузку на mysql, при большом посещении приложения?

Доброго всем времени суток!

Товарищи, интересует вопрос следующего характера: что лучше использовать, или как лучше организовать многопользовательские действия на одно приложение.

Опишу ситуацию: есть модуль, содержащий вход в несколько локаций. При входе, пользователь идентифицируется в базе, что в данный момент он находится в одной из нескольких локаций. При переходе по локациям соответственно запись меняется. В каждой локации можно нападать на тех, кто в данный момент находится в этом же месте. В базе находится таблица, дублирующая параметры пользователя, специально для модуля, в случае если в заданной ячейке будет 0 после нападения, запись удаляется, и пользователь соответственно переходит в начало локации.
Вопрос: с таким подходом понятно, что если пользователей в модуле 50-100, база потерпит, но если их 1000+, то соответственно идет огромная нагрузка на mysql с большим количеством запросов. Есть ли какие идеи для выхода? Не рентабельнее использовать sqllite? Или лучше?
  • Вопрос задан
  • 2572 просмотра
Пригласить эксперта
Ответы на вопрос 4
@Snewer
Попробуйте Redis
Ответ написан
Комментировать
Эти ваши 1000+ пользователей будут делать запросы одновременно?
Не понятно какие запросы у Вас идут к базе (?)
Не понятно какие вычисления производятся на данными (?)

Опишите более подробно.

Возможно, можно просто часть нагрузки с БД перенести на файлы. Например, те же данные пользователей, которые дублируются.
Ответ написан
akubintsev
@akubintsev
Опытный backend разработчик
Зачем вообще всё время писать эти данные в дисковое хранилище?
Ответ написан
Комментировать
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
Для таких сценариев существует кеширование в памяти. Смотрите в сторону Redis или Memcached.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы