Optimierung von MySQL-Löschanweisungen

Ich habe einige Löschabfragen für einige ziemlich große Tabellen (~ 100 GB), und ich möchte sie so weit wie möglich optimieren:

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

column1 ist adatetime Wenn Sie einen Index für diese Spalte erstellen, werden die Löschvorgänge beschleunigt. Kann ich sonst noch etwas tun? wird mit derdate_sub() Funktion die Abfrage verlangsamen? sollte ich diesen Wert vor dem Ausführen der Abfrage berechnen?

delete from table2 where column2 = x;

column2 ist der Primärschlüssel für table2, es handelt sich also bereits um einen Index gemäß der mysql-Dokumentation. meine frage ist: die indexart istPRIMARYist das selbe wie dasINDEX? muss ich einen anderen Index der Art machenINDEX für die Beschleunigung?

delete from table3 where column3 = y;

table3 hat einen zusammengesetzten Primärschlüssel, nämlich column3 und column4. Ich habe also einen Primärschlüsselindex, aber da die Löschabfrage Spalte4 nicht verwendet, sollte ich einen separaten Index nur für Spalte3 erstellen? oder der kombinierte Primärschlüssel würde es tun?

Ich denke, das sind ziemlich grundlegende Fragen, aber ich konnte keine definitive Antwort für meine Situation finden, daher wäre jede Hilfe dankbar!

Antworten auf die Frage(2)

Ihre Antwort auf die Frage