Назад | Перейти на главную страницу

Увеличение значений, альтернативный способ сделать это, не использующий MySQL

Мне нужно подсчитать количество показов .php скрипта, доступ к которому осуществляется через Интернет. Прямо сейчас я делаю это в таблице MySQL в одну строку и просто увеличиваю значение. Обычно это работает нормально, но когда на сервере возникают всплески трафика (сотни запросов в секунду), все задерживается, и в журнале медленных запросов MySQL начинают появляться SQL-операторы увеличения.
Я пытался посчитать через APC, но он «теряет» значения, то есть когда я запускаю простую команду ab test, например

ab -n 100 -c 10 http://example.com/script.php

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

Мне было интересно, знает ли кто-нибудь о хорошем решении этой проблемы?

В конце концов, я решил использовать таблицу MEMORY вместо обычной таблицы INNODB. Хотя решение не идеально, оно работает намного лучше, чем просто использование INNODB для этого. Я также применил это решение к ряду других таблиц, где целостность данных не имела решающего значения, и результаты были положительными.