SQL обновляет поток записей безопасно - PullRequest
0 голосов
/ 01 июня 2018

Я работаю на сервере, который обращается к базе данных.Несколько человек могут получить доступ к одной и той же записи.Будет ли каждый запрос ждать в очереди или все они попытаются изменить эту запись одновременно.

Пример: у меня есть изображение, и база данных будет отслеживать, сколько "лайков" имеет это изображение.

UPDATE `images` SET `image_likes` = `image_likes` + 1 WHERE `image_id` = 0;

Если предположить, что конкретное изображение имеет 0 «лайков» и 3 человека одновременно «лайк» этого изображения, будут ли эти 3 запроса правильно обработаны, в результате чего у этого изображения будет 3 лайка иливероятность того, что запись может быть повреждена или, по крайней мере, неверна, может быть, только показывает 2 «лайка»?

Моя база данных использует движок MyISAM, и я использую его через GoDaddy.

Спасибо

1 Ответ

0 голосов
/ 01 июня 2018

Php сам по себе не является потокобезопасным, но MySQL - в этом случае MySQL справится с этой проблемой, и вы получите 3 лайка.Если не задействована какая-либо другая операция, это не должно быть проблемой

Вы можете попробовать, вызвав этот скрипт через консоль несколько раз, чтобы увидеть, что происходит

...