walerusона не должна нигде храниться. Она должна высчитываться из разницы времени.
10 долларов в минуту.
Прошло 35 минут, когда человек решил увидеть свой баланс, значит ты делаешь 35*10 = твой баланс. Он обновляет страницу через 1 минуту и видит: 36*10.
При этом стоп-моменты оставляй после оплаты. Допустим он оплатил и у него осталось 33 доллара на 10-ой минуте. Значит на 35 минуте: 33 доллара + (35 минут - 10 минут)*10 долларов в минуту. 33+ 25*10 = 33 * 250 = 283 доллара у человека после 35 минут времени.
В итоге ты не пересчитываешь каждую секунду кошелёк КАЖДОГО человека, а лишь выводишь в момент, когда он хочет его увидеть. Если человек не выполняет действия и находится на одной странице, то баланс обновляться вешаешь на JS, то есть он ждёт одну минуту с 36 по 37 и у него браузер сам переключает 283+10 = 293.
Теперь, когда он один раз в 10 минут обновит - 33 + (46 - 10)*10 = 393.
Таким образом ты получишь очень низкую нагрузку на сервер и на вычисления. Теперь, если он на 46 минуте делает покупку какого-то предмета за 200 долларов, то ты меняешь отметку времени с 10-ой минуты на 46-ую минуту и фиксируешь, что на 46-ую минуту у него осталось 193 доллара. И далее по той же схеме: 193 + (53 - 46)*10 (если обновление на конец 53-ей минуты). Точку баланса (деньги+отрезок) делаем для того, чтобы в формуле не высчитывать каждый раз все покупки, а иметь финальный баланс после последней покупки на момент этой самой покупки и относительно него вычисляешь.
В базе у тебя 1 миллион пользователей. Каждую секунду ты хотел обновлять 1 миллион записей, 1 миллион запросов.
А я говорю, что в базе хоть у тебя и 1 миллион пользователей, но сейчас в сети 1 тысяча, и в минуту лишь 100 человек из них обновляют страницу, значит вместо 60 миллионов запросов у тебя всего 100 запросов + 100 маленьких простых вычислений!
_____________
Обучаю веб-программированию качественно и не дорого:
http://school-php.comФрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).