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.

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.


1
Nur um sicher zu gehen.
Tim Meers
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.