Ich habe eine recht große Tabelle mit 19 000 000 Datensätzen, und ich habe Probleme mit doppelten Zeilen. Es gibt viele ähnliche Fragen auch hier in SO, aber keine von ihnen scheint mir eine befriedigende Antwort zu geben. Einige Punkte zu beachten:Löschen von Duplikaten aus einer großen Tabelle
- Row Einzigartigkeit von zwei Säulen bestimmt wird,
location_id
unddatetime
. - Ich möchte die Ausführungszeit so schnell wie möglich halten (< 1 Stunde).
- Kopieren von Tabellen ist nicht sehr machbar, da die Tabelle mehrere Gigabyte groß ist.
- Keine Notwendigkeit, sich um Beziehungen zu sorgen.
Wie gesagt, jeder location_id
nur ein bestimmtes datetime
haben kann, und ich möchte alle doppelten Instanzen entfernen. Es spielt keine Rolle, welcher von ihnen überlebt, da die Daten identisch sind.
Irgendwelche Ideen?
Berücksichtigen Sie, um Indizes vorübergehend zu entfernen, wenn Trigger vorhanden sind. – Pentium10
Was war falsch mit dem Ansatz in http://stackoverflow.com/questions/1585412/sql-to-delete-duplicate-records-in-a-table? – Mike
@ Pentium10, guter Punkt, könnte die Dinge beschleunigen, aber könnte auch Leistung zu töten, wenn ich mit der Unterabfrage Lösung durchgehen. –