Есть таблица в MySQL, где записано определенное кол-во единиц для каждого пользователя. Необходимо постоянно увеличивать это кол-во в соответствии с уникальным кодом пользователя. Как реализовать это наименее затратно в плане потребления ресурсов сервера? Заранее спасибо!
Как увеличивается? Если значение увеличения одинаково или есть постоянное математическое выражение или есть данные из другой таблицы - то возможно сделать одним несложным запросом.
Выражение: текущее значение + значение из другой таблицы. Действие должно производиться каждую секунду для сотен пользователей. Пожалуйста спасите)
Ну стандартно UPDATE mytable SET значение = значение + mytable2.значение WHERE mytable.id = mytable2.id Но тут такое дело, не уверен что всё будет как надо. Т.е. каждую секунду что-то меняет данные в другой таблице? И он меняет данные в той таблице на всех строках? Может и за миллисек успеет, "НО" если что-то другое в этот момент с таблой работает, могут возникнуть проблемы одновременного доступа. В таблице где происходят изменения на этот момент нужны блокировки на чтение. Может быть транзакциями осуществить. Насколько быстро будет работать тоже не уверен ) Даже десятки тысяч строк это для нормального сервера та же миллисекунда, а если это хостинг )) сами понимаете. ЗЫ. По поводу хранимых процедур, ИМХО не дадут существенный прирост во времени, запрос тот же ps) mytable.id = mytable2.id конечно же
В том то и дело, где обрабатывать этот запрос? Его необходимо выполнять именно на сервере, даже когда никого из пользователей нет на сайте. Если есть например 1к строк с данными. В каждой из них записано уникальное значение. В другой таблице записано значение прироста в секунду для каждой из этих строк. Необходимо каждую секунду обновлять значение, при этом не задействую никаких скриптов со стороны пользователя.
чтобы такое запускать нужна прога или планировщик. Причем лучше прога, которая делает запросы в БД напрямую, без посредников (вэб-сервер и т.д.) Может и будет красиво работать. 1К это не много, должен успевать
Точно! Большое спасибо! Думаю не так сложно реализовать на том же Си. Что будет лучше: прога на Си или скрипт php на сервере?
PHP скрипт сам запускаться не будет, нужен планировщик (крон), правда накидать этот скрипт гораздо быстрее и легче. Прога это резидентная вещь, должен висеть в памяти, сервер при этом должен быть почти родным, на обычном вирт.хостинге за это вам услуги "закроют". Если "писать под ОС" не вызывает трудностей то за вечер с бутылкой пива соберете ))