Что происходит, когда несколько пользователей пытаются одновременно изменить одни и те же данные в базе данных MySQL веб-сайта?

Скажем, PHP-скрипт добавляет некоторый текст к уже существующим данным в базе данных MySQL. Скажем, существующие данные abc, Теперь один пользователь хочет добавить 123 а другой хочет добавить xyz, Оба они запускают сценарий одновременно. Чей будет добавлен первым? Будет ли окончательный результат abc123xyz или же abcxyz123?

В худшем случае, скажем, сценарий сначала берет данные, добавляет к нему заданный текст, а затем заменяет старые данные в базе данных. Тогда чьи изменения «выживут» здесь? Будет ли результат abc123 или же abcxyz?

Извините, если это было задано ранее.

0

Решение

Зависит от используемого вами двигателя. Для InnoDB MySQL выполняет блокировку на уровне строк только для записи.
Там будет крошечная минутная разница при попадании в базу данных с запросом

Он выполнит первый запрос. Затем он выполнит второй запрос
поэтому данные будут 123abc или 123xyz в зависимости от того, какой запрос был выполнен первым.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]