Vorwort: Der Grund für die Überstunden besteht darin, online zu gehen und das Problem doppelter Daten in der Online-Datenbank zu lösen. Es wurde In der Online-Bibliothek gibt es in 6 Tabellen doppelte Daten, von denen 2 relativ groß sind, eine mit mehr als 960.000 und die andere mit mehr als 300.000. Da ich mich bereits zuvor mit demselben Problem befasst habe, habe ich direkt das Emmmm, aber die Effizienz ist zu niedrig, ein Stück pro Sekunde, über 20.000 doppelte Daten und die geschätzte Zeit beträgt etwa 8 Stunden. . . Es ist problematisch, sich blind auf die Dinge der Vorgänger zu verlassen, ohne selbst nachzudenken! Sich ständig zu fragen, warum es vorher funktioniert hat und warum es jetzt nicht funktioniert, ist auch ein Problem! Ich habe festgestellt, dass es mir in letzter Zeit schlecht ging und ich die Lust am Entdecken und Wissen verloren habe. Der heutige Tag ist für mich ein Weckruf und ich habe das Gefühl, endlich wieder auf den richtigen Weg gefunden zu haben. Kommen wir nun zum Thema zurück. Die Deduplizierungsschritte werden im Folgenden ausführlich vorgestellt. 1. Entdecken Sie das ProblemCREATE TABLE `Tier` ( `id` int(11) NICHT NULL AUTO_INCREMENT, `name` varchar(20) DEFAULT NULL, `Alter` int(11) DEFAULT NULL, PRIMÄRSCHLÜSSEL (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_bin; INSERT INTO `pilipa_dds`.`student` (`id`, `name`, `alter`) VALUES ('1', 'Katze', '12'); INSERT INTO `pilipa_dds`.`student` (`id`, `name`, `alter`) VALUES ('2', 'Hund', '13'); INSERT INTO `pilipa_dds`.`student` (`id`, `name`, `alter`) VALUES ('3', 'camel', '25'); INSERT INTO `pilipa_dds`.`student` (`id`, `name`, `alter`) VALUES ('4', 'Katze', '32'); INSERT INTO `pilipa_dds`.`student` (`id`, `name`, `alter`) VALUES ('5', 'Hund', '42'); Ziel: Wir möchten Daten mit gleichem Prüfen Sie zunächst, welche Daten wiederholt werden. SELECT Name,Anzahl( 1 ) AUS Student GRUPPELN NACH NAME HABEN Anzahl(1) > 1; Ausgabe:
Die Daten Wählen Sie * aus der Tabelle mit dem sich wiederholenden Feld aus (Wählen Sie ein sich wiederholendes Feld aus der Tabellengruppe nach sich wiederholenden Feldern mit der Anzahl (1)>1) 2. Löschen Sie alle doppelten Daten, ohneDas direkte Löschen führt zu einem Fehler. LÖSCHEN AUS Student WO NAME IN ( NAME AUSWÄHLEN AUS Student GRUPPELN NACH NAME HABEN Anzahl( 1 ) > 1) Fehler: 1093 - Sie können die Zieltabelle „Student“ für die Aktualisierung in der FROM-Klausel nicht angeben, Zeit: 0,016000 s Der Grund ist: Während der Aktualisierung dieser Tabelle wird diese Tabelle abgefragt, während der Abfrage dieser Tabelle wird diese Tabelle erneut aktualisiert, was als Deadlock verstanden werden kann. MySQL unterstützt diesen Vorgang des Aktualisierens und Abfragens derselben Tabelle nicht. Lösung: Fragen Sie die zu aktualisierenden Datenspalten als Drittanbietertabelle ab und filtern und aktualisieren Sie sie anschließend. LÖSCHEN AUS Student WO NAME IN ( WÄHLEN t.NAME AUS (SELECT NAME FROM student GROUP BY NAME HAVING count( 1 ) > 1 ) t) 3. Löschen Sie doppelte Daten aus der Löschtabelle und behalten Sie nur eineVor dem Löschen können wir prüfen, welche Art von doppelten Daten wir löschen möchten. WÄHLEN * AUS Student WO id NICHT IN ( WÄHLEN t.id AUS (SELECT MIN(id) AS id FROM student GROUP BY `name`) t ) Was bedeutet das? Zuerst gruppieren wir nach 4. Beginnen Sie mit dem Löschen doppelter Daten und behalten Sie nur eine Es ist ganz einfach. Ersetzen Sie einfach LÖSCHEN AUS Student WO id NICHT IN ( WÄHLEN t.id AUS (SELECT MIN(id) AS id FROM student GROUP BY `name`) t ) Die Ausführung einer Tabelle mit über 900.000 Datensätzen ist superschnell. Dies ist das Ende dieses Artikels zum Herausfiltern doppelter Daten während Das könnte Sie auch interessieren:
|
<<: Schritte zur VMware-Konfiguration des VMnet8-Netzwerks
>>: Responsive Webdesign lernen (3) - So verbessern Sie die Leistung von Webseiten auf Mobilgeräten
Ein statischer Knoten ist auf einer Maschine fixi...
Inhaltsverzeichnis Szeneneinführung Hohe Reaktion...
<br />Wie kann ich die Bildlaufleiste auf de...
In einer Tabelle können Sie die Farbe des unteren...
01 Das Konzept der parallelen Replikation In der ...
Inhaltsverzeichnis 1. Fehlerbehebung und Lokalisi...
Inhaltsverzeichnis Einführung Installieren Anzeig...
So zentrieren Sie ein Element im Browserfenster H...
Alibaba Cloud Server installiert und konfiguriert...
Originaltext: https://dev.mysql.com/doc/refman/8....
Vorwort Die MySQL-Abfrage verwendet den Select-Be...
<br />Die Zugriffsgeschwindigkeit einer Webs...
Lassen Sie uns keine weitere Zeit verschwenden un...
Da immer mehr Docker-Images verwendet werden, mus...
Vorwort Dieser Artikel beschreibt, wie ich Docker...