Hochleistungsstrategien zum Löschen von Millionen von Zeilen basierend auf der ID
Das Entfernen von Millionen von Datenbankzeilen kann unglaublich zeitaufwändig sein. In dieser Anleitung werden optimale Methoden zum effizienten Löschen dieser Zeilen anhand ihrer IDs beschrieben.
Wichtige Optimierungstechniken
VACUUM
- und ANALYZE
-Befehle helfen bei der Pflege von Datenbankmetadaten und verbessern die Abfrageeffizienz. Wenn Sie diese vor dem Löschvorgang ausführen, kann dies zu erheblichen Leistungssteigerungen führen.Codebeispiele
Verwendung einer temporären Tabelle:
-- Create a temporary table to hold rows to keep CREATE TEMP TABLE tmp AS SELECT t.* FROM tbl t LEFT JOIN del_list d USING (id) WHERE d.id IS NULL; -- Remove all rows from the original table TRUNCATE tbl; -- Repopulate the original table with the retained rows INSERT INTO tbl SELECT * FROM tmp;
Überlegungen zum direkten Löschen mit Fremdschlüsseln:
DELETE FROM tbl t USING del_list d WHERE t.id = d.id AND NOT EXISTS (SELECT 1 FROM related_table WHERE id = t.id);
Wichtige Überlegungen
Das obige ist der detaillierte Inhalt vonWie lösche ich effizient Millionen von Zeilen aus einer Datenbank nach ID?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!