Heim  >  Artikel  >  Datenbank  >  So löschen Sie Daten in der Datenbank in MySQL stapelweise

So löschen Sie Daten in der Datenbank in MySQL stapelweise

coldplay.xixi
coldplay.xixiOriginal
2020-09-28 13:16:104018Durchsuche

MySQL-Methode zum stapelweisen Löschen von Daten in der Datenbank: Stapelweises Löschen über den Parameter LIMIT, die Syntax lautet [DELETE FROM syslogs WHERE status=1 ORDER BY statusid LIMIT 10000].

So löschen Sie Daten in der Datenbank in MySQL stapelweise

So löschen Sie Daten in einer MySQL-Datenbank stapelweise:

Angenommen, es gibt eine Tabelle (Syslogs) mit 10 Millionen Datensätzen, und alle Datensätze mit der Status-ID = 1 müssen gelöscht werden, ohne dass das Geschäft nahezu angehalten wird Es gibt 6 Millionen Einträge. Wenn Sie DELETE FROM syslogs WHERE statusid=1 direkt ausführen, werden Sie feststellen, dass der Löschvorgang aufgrund des Fehlers „Sperrwartezeitüberschreitung“ fehlschlägt. DELETE FROM syslogs WHERE statusid=1 会发现删除失败,因为lock wait timeout exceed的错误。

因为这条语句所涉及的记录数太多,因此我们通过LIMIT

Da diese Anweisung zu viele Datensätze umfasst, verwenden wir den Parameter LIMIT, um beispielsweise alle 10.000 Datensätze zu löschen. Dann können wir zum Vervollständigen eine Anweisung wie MySQL verwenden:

 DELETE FROM syslogs WHERE status=1 ORDER BY statusid LIMIT 10000;

Dann Führen Sie es mehrmals aus, um diese Datensätze erfolgreich zu löschen.

Hinweis:

  • Achten Sie darauf, das Limit zu verwenden, wenn Sie große Batch-Löschungen durchführen. Denn wenn das Limit nicht verwendet wird, führt das Löschen einer großen Datenmenge wahrscheinlich zu einem Deadlock.
  • Wenn sich die where-Anweisung zum Löschen nicht im Index befindet, können Sie zuerst den Primärschlüssel finden und dann die Datenbank basierend auf dem Primärschlüssel löschen.
  • Am besten beim Aktualisieren und Löschen Limit 1 hinzufügen, um Missbrauch vorzubeugen.

Weitere verwandte kostenlose Lernempfehlungen: MySQL-Tutorial(Video)

🎜

Das obige ist der detaillierte Inhalt vonSo löschen Sie Daten in der Datenbank in MySQL stapelweise. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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