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 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
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:
🎜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!