Я все еще учусь и пытаюсь понять вещи в SQL. У меня есть скрипт, который выполняет удаление в пакетах, как это:
while rows_were_deleted:
DELETE FROM some_table WHERE id IN (SELECT id FROM deletes_table) LIMIT 1000
И это довольно медленно. Моей первой мыслью было, что SELECT id FROM deletes_table
занимает много времени, так как deletes_table
имеет несколько тысяч строк. Поэтому я попробовал что-то более похожее
while rows_were_deleted:
ids_to_delete = SELECT id FROM deletes_table
for delete_id in ids_to_deletes:
DELETE FROM some_table WHERE id = delete_id LIMIT 1000
И это было еще медленнее. Я предполагаю, потому что там так много операций. Каков наилучший способ удаления, подобного этому?