Heim  >  Artikel  >  Datenbank  >  MySQL Advanced (fünfzehn) MySQL Batch-Löschen großer Datenmengen

MySQL Advanced (fünfzehn) MySQL Batch-Löschen großer Datenmengen

黄舟
黄舟Original
2017-02-10 11:04:091467Durchsuche

MySQLGroße Datenmengen stapelweise löschen

Angenommen, es gibt eine Tabelle (Syslogs)mit 1000 Zehntausend Datensätze, darunter alle Datensätze mit statusid=1, die gelöscht werden müssen, ohne das Geschäft zu stoppen. Es sind fast 600 zehntausend Datensätze, führen Sie direkt DELETE FROM syslogs WHERE statusid=1 aus und Sie werden feststellen, dass das Löschen fehlschlägt, weil die Sperrwartezeit überschritten wurde Fehler. Da diese Anweisung zu viele Datensätze umfasst, löschen wir sie stapelweise über den Parameter

LIMIT

, z. B. alle 10000 Elemente werden einmal gelöscht, dann können wir Anweisungen wie MySQL verwenden, um :

zu vervollständigen und diese Datensätze dann mehrmals auszuführen kann erfolgreich gelöscht werden.
 DELETE FROM syslogs WHERE status=1 ORDER BY statusid LIMIT 10000;


Hinweis:

Achten Sie darauf, das

Limit

zu verwenden, wenn Sie eine Massenlöschung durchführen. Denn wenn Limit nicht verwendet wird, führt das Löschen einer großen Datenmenge wahrscheinlich zu einem Deadlock. Wenn die

where-Anweisung von delete nicht im Index enthalten ist, können Sie zuerst den Primärschlüssel finden. und löschen Sie dann die Datenbank basierend auf dem Primärschlüssel. Normalerweise ist es am besten,

Limit 1 Aktualisieren hinzuzufügen und Löschen 🎜 > um Missbrauch vorzubeugen.

Das Obige ist der Inhalt von MySQL Advanced, Batch-Löschung, große Datenmengen. Für weitere verwandte Inhalte achten Sie bitte auf PHP-Chinesisch Website (www.php.cn)!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn