Я хочу явно указать, как MySql InnoDB должен получать блокировки для строк. Если это возможно, не должно быть никаких мертвых блокировок, которые просто останавливаются. (Если следовать соглашению.)
Во-первых, база данных должна заблокировать все строки, найденные в таблице «models», в порядке возрастания. Затем все строки во второй таблице «цвета» должны быть заблокированы в порядке возрастания. Есть ли способ управлять базой данных, чтобы сначала заблокировать таблицы «модели», а затем «цвета»?
Дано например:
start transaction;
select *
from models m
join colors c on c.model_id = m.id
where c.id IN (101, 105, 106)
order by m.id asc, c.id asc
for update;