Heim > Datenbank > MySQL-Tutorial > Wie entferne ich schnell Duplikate aus einer riesigen MySQL-Datenbank?

Wie entferne ich schnell Duplikate aus einer riesigen MySQL-Datenbank?

Barbara Streisand
Freigeben: 2024-12-29 22:36:12
Original
675 Leute haben es durchsucht

How to Quickly Remove Duplicates from a Massive MySQL Database?

MySQL: Duplikate schnell aus riesigen Datenbanken entfernen

Begegnungen mit riesigen MySQL-Datenbanken, die durch doppelte Einträge beeinträchtigt sind, erfordern eine schnelle Lösung, insbesondere in Szenarien, in denen Zeit benötigt wird ist von wesentlicher Bedeutung. Aufgrund von Bedenken hinsichtlich der Ausführungszeit von Abfragen war eine dieser Datenbanken, die über eine Million Zeilen umfasst, mit Duplikaten übersät, die möglicherweise bis zur Hälfte ihrer Speicherkapazität beanspruchen.

Ziel ist es, die Datenbank schnell zu bereinigen und Eindeutige zu identifizieren Kombinationen von „text1“ und „text2“, wobei für jede eindeutige Kombination ein einzelner Datensatz mit einem „text3“-Wert ungleich Null erhalten bleibt. Dieser Prozess verhindert Datenverlust und stellt die Datenintegrität sicher.

Herkömmliche Ansätze wie DISTINCT und GROUP BY sind zwar bei kleineren Datenbanken effektiv, haben sich jedoch als unzureichend erwiesen, da die Ausführungszeiten der Abfragen den Schwellenwert von 20 Minuten überschreiten. Daher wird nach einer effizienteren Lösung gesucht.

Eine solche Lösung, die die kombinierte Leistung von „ON DUPLICATE KEY“ und „IFNULL()“ nutzt, bietet außergewöhnliche Leistung:

CREATE TABLE tmp LIKE yourtable;

ALTER TABLE tmp ADD UNIQUE (text1, text2);

INSERT INTO tmp SELECT * FROM yourtable
ON DUPLICATE KEY UPDATE text3=IFNULL(text3, VALUES(text3));

RENAME TABLE yourtable TO deleteme, tmp TO yourtable;

DROP TABLE deleteme;
Nach dem Login kopieren

Dieser Ansatz zeichnet sich dadurch aus, dass ressourcenintensive Vorgänge wie GROUP BY und DISTINCT vermieden werden. Außerdem werden die mit der Dateisortierung verbundenen Leistungsprobleme umgangen, die bei großen temporären Tabellen ein großes Hindernis darstellen. Während ein vollständiger Scan der Originaltabelle unvermeidbar bleibt, bietet diese optimierte Lösung den effizientesten Ansatz zur Duplikatentfernung bei umfangreichen Datenbanken.

Das obige ist der detaillierte Inhalt vonWie entferne ich schnell Duplikate aus einer riesigen MySQL-Datenbank?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage