У меня есть таблица уведомлений, содержащая около 100 миллионов строк хоста в Amazon RDS с 1000 IOPS, и я хочу удалить эти строки старше одного месяца.
Если я это сделаю DELETE FROM NOTIFICATION WHERE CreatedAt < DATE_SUB(CURDATE(), INTERVAL 30 day);
, все IOPS будут приняты, процесс займет несколько часов, и много новых записей не могут быть вставлены из-за «Превышено время ожидания блокировки; попробуйте перезапустить транзакцию».
Я пытался сделать так, как описано здесь: http://mysql.rjweb.org/doc.php/deletebig Однако я использую UUID вместо ID приращения.
Как правильно и эффективно удалить эти строки, не влияя на добавление / обновление новых данных?