@KirSupi

Какие есть многопользовательские БД или как правильно работать с MySQL?

Условно есть два сложных скрипта PHP
В один прекрасный день они оба запустились и начали загружать данные в одну таблицу в MySQL, в итоге один из них вылетел, сказал "БД уже занята" и пошёл спать
Собственно, что делать, чтобы такого не происходило? Мб есть какие-то БД, в которых такие проблемы не встают или есть какие-то решения при работе с MySQL?
  • Вопрос задан
  • 87 просмотров
Пригласить эксперта
Ответы на вопрос 1
index0h
@index0h
PHP, Golang. https://github.com/index0h
Вопрос из серии: "я что-то нажала и все пропало, что делать?". Без инспекции этих сложных скриптов у вас ничего не выйдет.
Если я правильно понимаю, у вас проблема с конкурентным доступом к одним и тем же данным.
В принципе есть как минимум 2 относительно простых решения:

1. Контроль за счет блокировок. Грубо говоря 1ый скрипт перед началом работы с записью N "блокирует ее", записав в memcached / redis / или через GET_LOCK этот идентификатор, если получилось - продолжает выполнение, если не получилось - пытается заблокировать, либо берется за следующую запись.

2. Решение более специфическое, менее надежное, но более быстрое. Явно указать для первого скрипта: ты работаешь только с парными записями, а второму - с не парными.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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