Глоссарий не является точным.
SELECT FOR UPDATE
получает X-замок, как UPDATE
. В обоих случаях другие транзакции, требующие блокировки любого типа, должны ждать.
SELECT FOR SHARE
(или LOCK IN SHARE MODE
) приобретает S-замок. Другие транзакции, которым требуются S-блокировки, могут получить их, но другие транзакции, которым нужны X-блокировки, должны ждать.
Уровень изоляции транзакции имеет мало общего с необходимыми блокировками, за исключением того, что некоторые типы блокировок пробела не нужны, когда ваша транзакция использует READ-COMMITTED.
Кажется, глоссарием немного пренебрегают. Лучше читать https://dev.mysql.com/doc/refman/8.0/en/innodb-locking-reads.html и https://dev.mysql.com/doc/refman/8.0/en/innodb-transaction-isolation-levels.html