Запросы данных и производительность - PullRequest
1 голос
/ 04 мая 2011

я должен взять новые данные для моей карты мира онлайн-игр ajax (при перетаскивании / прокрутке) из моей базы данных mysql или лучше загрузить данные из сгенерированного (и часто обновляемого) XML? (часто обновляется -> из-за новых игроков, присоединяющихся к игре / карте мира)?

другими словами: способен ли mysql на несколько тысяч игроков прокручивать карту мира (и, следовательно, запрашивать новые данные), или я должен использовать лист XML?

Ответы [ 4 ]

1 голос
/ 04 мая 2011

Лично я ненавижу XML.
Для вас это может быть подходящим инструментом для работы, но я просто собираюсь ответить на вопрос «способен ли mysql на…» вашего вопроса: -)

Да
Но это зависит от ваших навыков SQL. Как ускорить процесс?

  1. Держите сервер MySQL на том же компьютере, что и веб-сервер, чтобы избежать сетевого трафика.
  2. Используйте таблицы памяти, чтобы избежать дискового ввода-вывода.
  3. Познакомьтесь с SQL
  4. MySQL в конфигурации по умолчанию настроен на маленькие таблицы и малый объем памяти, это звучит так, как будто это соответствует вашему случаю, но экспериментируйте и измеряйте, чтобы увидеть, какая конфигурация работает лучше всего.
  5. Меньше операций выбора / вставки / обновления с большим количеством данных на запрос выполняется быстрее, чем больше операций выбора / вставки / обновления с меньшим количеством данных на запрос.

Также обратите внимание, что если вы не кешируете файл XML в памяти, вы столкнетесь с проблемами блокировки файла XML, что замедлит работу.

0 голосов
/ 04 мая 2011

Возвращается ли ответ Ajax в формате XML или JSON? Если последнее, то зачем возиться с XML?

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

0 голосов
/ 04 мая 2011

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

также может заинтересовать вас.возможно, вам стоит взглянуть на nodejs, с его помощью вы сможете легко обрабатывать новые пользовательские объединения (передавайте новых игроков другим игрокам вместо того, чтобы извлекать данные из mysql

0 голосов
/ 04 мая 2011

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

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