Loading...
https://oracleplsql.ru/delete-limit-mysql.html

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
Ramzesoff (11 сен 2023, в 17:26)
https://oracleplsql.ru/delete-limit-mysql.html

Update на LIMIT 1
Например у нас миллионы строк в таблице которым нужно изменить флаг, чтоб не делать это одним запросом который заблокирует всю таблицу, делается бесконечный цикл с условием что изменены > 0 строк и с помощью лимита ограничивается кол-во строк для апдэйта. Так флаг меняется небольшими пачками (100, 500, 1000 строк), которые выполняются быстрее и не блокируют всю таблицу, что позволяет избежать deadlock'и.

php
mysqli_query($mysqli, "UPDATE `s` SET `i` = '".$i."' WHERE `z` = '".$z."' LIMIT 1");
Лучше ограничивать по выборке where и полям с индексом чтоб контролировать весь процесс.
Если же нужно в качестве миграций это делать то возложить ответственность на перкону например которая накатит все самое тяжёлое и аптайм базы не упадёт)
Онлайн: 2
Время:
Gen. 0.0784
(c) Bym.Guru 2010-2025