Optymalizacja instrukcji usuwania MySQL

mam kilka zapytań do usunięcia, które można uruchomić na całkiem dużym stole (~ 100 GB) i chcę je zoptymalizować tak bardzo, jak to możliwe:

delete from table1 where column1 < date_sub(now(), interval 100 hour);

kolumna1 to adatetime kolumna, zakładam, że tworzenie indeksu dla tej kolumny przyspieszy usuwanie. poza tym wszystko, co mogę tutaj zrobić? użyjedate_sub() funkcja spowalnia zapytanie? powinienem obliczyć tę wartość przed uruchomieniem zapytania?

delete from table2 where column2 = x;

column2 jest kluczem podstawowym dla table2, więc jest już indeksem zgodnie z dokumentacją mysql. moje pytanie brzmi: rodzaj indeksu toPRIMARY, czy to tak samo jakINDEX? czy muszę zrobić kolejny indeks tego rodzajuINDEX za przyspieszenie?

delete from table3 where column3 = y;

table3 ma złożony klucz podstawowy, który jest kolumną3 i kolumną4. więc mam indeks klucza podstawowego, ale ponieważ zapytanie usuwania nie używa kolumny4, czy powinienem utworzyć osobny indeks tylko dla kolumny3? lub połączony klucz podstawowy by to zrobił?

Sądzę, że są to dość podstawowe pytania, ale nie mogłem znaleźć konkretnej odpowiedzi specyficznej dla mojej sytuacji, więc każda pomoc byłaby doceniana!

questionAnswers(2)

yourAnswerToTheQuestion