Когда именно MySQL блокирует строку при обновлении таблицы InnoDB?

Если у меня есть этот запрос с несколькими обновлениями

UPDATE user u
INNER JOIN user_profile up ON up.user_id = u.id
SET u.name = 'same_name_i_already_had', up.profile.age = 25
WHERE u.id = 10

Предположим, что строка 10 в пользовательской таблице уже имеет имя same_name_i_already_had, поэтому ее не следует обновлять .

С другой стороны, строка в таблице user_profile имеет другой возраст, поэтому MySQL должен ее обновить.

Предполагая MySQL как СУБД и InnoDB с его уровнем строки система блокировки в качестве движка обеих таблиц,

Блокирует ли MySQL строку в пользовательской таблице, несмотря на то, что не нужно обновлять поле имени этой строки?

16
задан Cœur 14 October 2018 в 17:41
поделиться