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
Frage 1: Wie weisen Sie den Browser an, die gewüns...
Heute habe ich einen Blogbeitrag über Eingabeerei...
Problembeschreibung Im Rahmen der Ele.me-Benutzer...
Die Ersetzungsanweisung ähnelt im Allgemeinen der...
Die in Baidu-Interviews gestellten Fragen müssen ...
Inhaltsverzeichnis Vorwort 1. Etikettenstil defin...
Öffnen Sie DREAMWEAVER und erstellen Sie ein neue...
Inhaltsverzeichnis Vorwort Start Vorwort Die Stan...
Was ist ein Generator? Ein Generator ist ein Code...
Als Neuling, der gerade mit dem Linux-System in K...
Inhaltsverzeichnis Hintergrund Erzielen Sie einen...
Wirkung Brauchen Sie eine Umgebung Ansicht elemen...
Ich bin erst vor Kurzem in eine neue Firma einges...
Durch JavaScript können wir das Springen von Hype...
Code kopieren Der Code lautet wie folgt: <vor&...