Избегайте тупиковой блокировки путем явного заказа

Я хочу явно указать, как 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;
7
задан mazatwork 31 May 2012 в 17:39
поделиться