Tabelle abschneiden dauert sehr lange, ist das normal?

8

Ich verwende truncate table table_name; auf einem Tisch mit etwa 1 Million Zeilen, aber es dauert zu lange, seit den letzten 3 Stunden läuft.

Ist das normal? Können Sie eine andere Möglichkeit vorschlagen, um alle Zeilen aus einer Tabelle zu löschen, die schneller sein könnten?

    
smrati katiyar 20.07.2013, 12:39
quelle

4 Antworten

31

Abschneiden funktioniert in einigen Fällen nicht wie

wenn Sie eine Art Index und einige Fremdschlüsseleinschränkungen haben

Einfacher Weg, den ich vorschlage, ist

%Vor%

oder Sie können auch DELETE FROM table_name;

verwenden     
Kalaiarasan Manimaran 20.07.2013, 12:57
quelle
1

Ich glaube, ein Deadlock tritt während der Abfrageausführung auf, daher ist es besser, ihn zu beenden.

Ich habe viele Daten gelöscht, indem ich kleine Blöcke in einer einzigen Abfrage löschte (10k funktioniert gut).

Sie könnten also ein Skript einrichten, das dies für Sie erledigt.

    
Uriil 20.07.2013 12:54
quelle
0

Ich hatte gerade einen trunkate Take für immer (über 6 Minuten) und dann habe ich ihn abgebrochen. So dachte ich. Tatsächlich hatte dieser Schritt viel weniger als eine Sekunde gedauert, und ich hatte den Schritt zwei Aktionen SPÄTER abgebrochen - das Aktionsausgabefenster war nicht aktualisiert worden.

    
brewmanz 05.10.2016 21:45
quelle
0

Es wird auch empfohlen, einmal den MySQL-Dienst oder ein ganzes System neu zu starten, wenn keine der obigen Lösungen funktioniert.

    
Stranger 03.04.2017 12:23
quelle

Tags und Links