Was passiert, wenn ich einen Alter Table-Thread töte, der noch verarbeitet wird?

7

Wenn Sie eine Tabelle ändern, um einen Index hinzuzufügen, was kann passieren, wenn dieser Thread während der Verarbeitung beendet wird?

Zu MySQL gehören:

Während ALTER TABLE wird das Kill-Flag überprüft, bevor jeder Zeilenblock aus der Originaltabelle gelesen wird. Wenn das Kill-Flag gesetzt wurde, wird die Anweisung abgebrochen und die temporäre Tabelle gelöscht.

Bearbeiten: Stellen Sie nur sicher, dass keine zusätzlichen Probleme auftreten.

Tim Meers
quelle

Antworten:

15

Was ist daran unklar?

MySQL erstellt eine temporäre Tabelle mit der neuen Datenstruktur, kopiert die Daten aus der ursprünglichen Tabelle und verwendet, wenn alles fertig ist, die temporäre Tabelle als primäre Tabelle.

Wenn dies bei einem Schritt fehlschlägt (möglicherweise aufgrund des Abbruchs der ALTER TABLEAnweisung), wird die temporäre Tabelle gelöscht und es passiert nichts.

Sven
quelle
1
Nur um sicher zu gehen.
Tim Meers