Лучший подход к обновлению счетчиков игр в базе данных для повышения производительности - PullRequest
0 голосов
/ 01 июня 2011

Вот мой вопрос.У нас есть веб-приложение, которое позволяет пользователю играть, и каждый раз, когда «игра» (один клик) обновляет счет в базах данных.Фактический sql может выглядеть так:

UPDATE `play_counts` SET `counts` = counts + 1, `modified` = '2011-06-01 00:00:00' WHERE `campaign_id` = 3;
Query_time: 2.564047  Lock_time: 0.000030 Rows_sent: 0  Rows_examined: 1

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

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

ОБНОВЛЕНИЕ

Таблица play_counts представляет собой не что иное, как подсчет, и ее PK имеет значение campaign_id.

В настоящее время мы используем движок InnoDB.Что лучше изменить на MyISAM?

UPDATE2 Обычно sql занимал всего 0,01 сек, но только несколько раз - 2 сек.Я думаю, что-то не так, кроме индекса или настройки SQL.

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