Скажем, PHP-скрипт добавляет некоторый текст к уже существующим данным в базе данных MySQL. Скажем, существующие данные abc
, Теперь один пользователь хочет добавить 123
а другой хочет добавить xyz
, Оба они запускают сценарий одновременно. Чей будет добавлен первым? Будет ли окончательный результат abc123xyz
или же abcxyz123
?
В худшем случае, скажем, сценарий сначала берет данные, добавляет к нему заданный текст, а затем заменяет старые данные в базе данных. Тогда чьи изменения «выживут» здесь? Будет ли результат abc123
или же abcxyz
?
Извините, если это было задано ранее.
Зависит от используемого вами двигателя. Для InnoDB MySQL выполняет блокировку на уровне строк только для записи.
Там будет крошечная минутная разница при попадании в базу данных с запросом
Он выполнит первый запрос. Затем он выполнит второй запрос
поэтому данные будут 123abc или 123xyz в зависимости от того, какой запрос был выполнен первым.
Других решений пока нет …