Update на LIMIT 1
Например у нас миллионы строк в таблице которым нужно изменить флаг, чтоб не делать это одним запросом который заблокирует всю таблицу, делается бесконечный цикл с условием что изменены > 0 строк и с помощью лимита ограничивается кол-во строк для апдэйта. Так флаг меняется небольшими пачками (100, 500, 1000 строк), которые выполняются быстрее и не блокируют всю таблицу, что позволяет избежать deadlock'и.
php
mysqli_query($mysqli, "UPDATE `s` SET `i` = '".$i."' WHERE `z` = '".$z."' LIMIT 1");
________ посл. ред. 11.09.2023 в 17:35; всего 1 раз(а); by Ramzesoff
Update на LIMIT 1
Например у нас миллионы строк в таблице которым нужно изменить флаг, чтоб не делать это одним запросом который заблокирует всю таблицу, делается бесконечный цикл с условием что изменены > 0 строк и с помощью лимита ограничивается кол-во строк для апдэйта. Так флаг меняется небольшими пачками (100, 500, 1000 строк), которые выполняются быстрее и не блокируют всю таблицу, что позволяет избежать deadlock'и.
php
mysqli_query($mysqli, "UPDATE `s` SET `i` = '".$i."' WHERE `z` = '".$z."' LIMIT 1");
Лучше ограничивать по выборке where и полям с индексом чтоб контролировать весь процесс.
Если же нужно в качестве миграций это делать то возложить ответственность на перкону например которая накатит все самое тяжёлое и аптайм базы не упадёт)