[MySQL]Постоянное увеличение значения

Discussion in 'PHP' started by Indev, 29 Jul 2012.

  1. Indev

    Indev New Member

    Joined:
    23 Dec 2011
    Messages:
    59
    Likes Received:
    3
    Reputations:
    0
    Есть таблица в MySQL, где записано определенное кол-во единиц для каждого пользователя. Необходимо постоянно увеличивать это кол-во в соответствии с уникальным кодом пользователя. Как реализовать это наименее затратно в плане потребления ресурсов сервера? Заранее спасибо!
     
  2. Art!P

    Art!P Elder - Старейшина

    Joined:
    22 Jan 2008
    Messages:
    169
    Likes Received:
    28
    Reputations:
    5
    Как увеличивается? Если значение увеличения одинаково или есть постоянное математическое выражение или есть данные из другой таблицы - то возможно сделать одним несложным запросом.
     
  3. Indev

    Indev New Member

    Joined:
    23 Dec 2011
    Messages:
    59
    Likes Received:
    3
    Reputations:
    0
    Выражение: текущее значение + значение из другой таблицы. Действие должно производиться каждую секунду для сотен пользователей. Пожалуйста спасите)
     
  4. Art!P

    Art!P Elder - Старейшина

    Joined:
    22 Jan 2008
    Messages:
    169
    Likes Received:
    28
    Reputations:
    5
    Ну стандартно
    UPDATE mytable SET значение = значение + mytable2.значение WHERE mytable.id = mytable2.id
    Но тут такое дело, не уверен что всё будет как надо. Т.е. каждую секунду что-то меняет данные в другой таблице? И он меняет данные в той таблице на всех строках?
    Может и за миллисек успеет, "НО" если что-то другое в этот момент с таблой работает, могут возникнуть проблемы одновременного доступа. В таблице где происходят изменения на этот момент нужны блокировки на чтение. Может быть транзакциями осуществить. Насколько быстро будет работать тоже не уверен ) Даже десятки тысяч строк это для нормального сервера та же миллисекунда, а если это хостинг )) сами понимаете.
    ЗЫ. По поводу хранимых процедур, ИМХО не дадут существенный прирост во времени, запрос тот же
    ps) mytable.id = mytable2.id конечно же
     
    #4 Art!P, 29 Jul 2012
    Last edited: 29 Jul 2012
  5. Indev

    Indev New Member

    Joined:
    23 Dec 2011
    Messages:
    59
    Likes Received:
    3
    Reputations:
    0
    В том то и дело, где обрабатывать этот запрос? Его необходимо выполнять именно на сервере, даже когда никого из пользователей нет на сайте. Если есть например 1к строк с данными. В каждой из них записано уникальное значение. В другой таблице записано значение прироста в секунду для каждой из этих строк. Необходимо каждую секунду обновлять значение, при этом не задействую никаких скриптов со стороны пользователя.
     
  6. Art!P

    Art!P Elder - Старейшина

    Joined:
    22 Jan 2008
    Messages:
    169
    Likes Received:
    28
    Reputations:
    5
    чтобы такое запускать нужна прога или планировщик. Причем лучше прога, которая делает запросы в БД напрямую, без посредников (вэб-сервер и т.д.)
    Может и будет красиво работать. 1К это не много, должен успевать
     
    1 person likes this.
  7. Indev

    Indev New Member

    Joined:
    23 Dec 2011
    Messages:
    59
    Likes Received:
    3
    Reputations:
    0
    Точно! Большое спасибо! Думаю не так сложно реализовать на том же Си. Что будет лучше: прога на Си или скрипт php на сервере?
     
  8. Art!P

    Art!P Elder - Старейшина

    Joined:
    22 Jan 2008
    Messages:
    169
    Likes Received:
    28
    Reputations:
    5
    PHP скрипт сам запускаться не будет, нужен планировщик (крон), правда накидать этот скрипт гораздо быстрее и легче.
    Прога это резидентная вещь, должен висеть в памяти, сервер при этом должен быть почти родным, на обычном вирт.хостинге за это вам услуги "закроют". Если "писать под ОС" не вызывает трудностей то за вечер с бутылкой пива соберете ))
     
  9. Indev

    Indev New Member

    Joined:
    23 Dec 2011
    Messages:
    59
    Likes Received:
    3
    Reputations:
    0
    Сервер свой, стоит в метре)
    ------------------------
    Тема закрыта, спасибо!
     
    #9 Indev, 29 Jul 2012
    Last edited: 29 Jul 2012
Loading...
Similar Threads - MySQL Постоянное увеличение
  1. GAiN
    Replies:
    3
    Views:
    7,454