@RastikRus

Блокировки в mysql, есть ли альтернатива?

Есть таблица, в определенный момент одновременно может прийти 20-30 запросов. В этот момент создается новая запись в таблице для каждого, а в другой нужно обновить время и увеличить в ней же число. Так как запросов приходит одновременно много, не все числа складываются и в итоге не все данные учитываются при следующем selecte. Для того, чтобы избежать этого, стал юзать блокировки, но из-за этого падает скорость работы. Как можно этого избежать?
  • Вопрос задан
  • 144 просмотра
Пригласить эксперта
Ответы на вопрос 2
Sanasol
@Sanasol
нельзя просто так взять и загуглить ошибку
не все числа складываются

Потому что для таких вещей надо как минимум делать
не так
update set field = newvalue

а вот так
update set field = field + newvalue

И скорее всего проблема будет решена.
По крайней мере информации достаточно чтобы предположить только такое решение.
Ответ написан
Demetriy
@Demetriy
веб и мобильная разработка
Почитайте про очереди, если на пальцах, то вам нужен отдельный скрипт (демон), который будет с определенной периодичностью брать данные пачками (по n записей) из таблицы 1 и последовательно считать их и обновлять таблицу 2, факт обработки можно зафиксировать как с помощью доп. поля аля "is_processed", так и с помощью создания отдельной таблицы, строки в которой будут удаляться в процессе их обработки.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы