| | | | |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |
| moderatives Dielektrikum Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Wie oft kommt denn so ein Insert vor? Ansonsten würde ich in einer geeigneten Sprache einen Bubblesort o.ä. für die Datei (oder eine Menge von Files - man könnte ja bspw. nach Anfangsbuchstaben der Hashes verteilen) schreiben, das auf einer schnellen Maschine drüberlaufen lassen (und wenns nen Tag dauert) und anschliessend durch linearen Vergleich des Vorgängers die Dubletten rauswerfen.
__________________ -- One pixel is still too big. Please make it smaller. ASAP. Initiative Mittelstand. Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers. -- |
| | |
| | |
| Gast
Beiträge: n/a
| Ein normaler Index hilft der Datenbank beim schnellen Suchen, Sortieren und Vergleichen. Genau dass muss ja die Dublettensuche machen. Mit den speziellen Indices wie UNIQUE INDEX und PRIMARY KEY kann zudem Eindeutigkeit erzwungen werden. So betrachtet kommt Du um einen normalen Index nicht herum, ausser die Daten werden schon ausserhalb bereinigt. Das Problem eines Kreuzproduktes hat ja nichts mit dem Index, sondern mit dem "falschen" SQL zu tun. Eine andere Möglichkeit wäre der 'LOAD' von Daten. Dass ist bei Massendaten sinnvoll, da müsstest Du Dich aber mal selbst einlesen. MySQL :: MySQL 5.0 Reference Manual :: 12.2.6 LOAD DATA INFILE Syntax Damit lassen sich eventuell auch 'Dubletten' in eine Exception-Tabelle aussortieren. Das habe ich aber mit MySQL noch nie probiert. Grüße Thomas |
|
| | ||
| Erfahrener Benutzer Registriert seit: 17.07.2006
Beiträge: 140
![]() | Zitat:
prinzipiell muss ich den Insert jetzt einmal machen...so ca. alle halbe Jahre kommen dann ein paar Millionen weitere Daten hinzu. Das wäre mit deinem Vorschlag theoretisch auch vereinbar, würde das ganze aber noch etwas verkomplizieren. Mit Java könnte ich das ganze umsetzen...an der schnellen Maschine wird es allerdings ein bisschen hapern, aber du hast recht, das kann ja dann so vor sich hin laufen. Hmmm...alles nicht so einfach
__________________ mfg louis | |
| | |
| | ||
| Erfahrener Benutzer Registriert seit: 17.07.2006
Beiträge: 140
![]() | Zitat:
Diese Methode scheidet leider aus, da ich die Daten vor dem Schreiben in die DB noch ein bisschen modifizieren muss...das könnte ich allerdings auch machen, indem ich die Daten von der ursprünglichen Tabelle in eine weitere Tabelle transferiere. Wie ich mit einem LOAD Dubletten ohne einen UNIQUE Index ausschließe, habe ich allerdings noch nicht verstanden.
__________________ mfg louis | |
| | |
| | ||
| Erfahrener Benutzer Registriert seit: 02.01.2009
Beiträge: 730
PHP-Kenntnisse: Fortgeschritten ![]() | Zitat:
| |
| | |
| | ||
| Gast
Beiträge: n/a
| Zitat:
Nochmal eine etwas andere Vorgehensweise: Gesetzt die Daten sind in der Datenbank und die Tabellen sehe so aus: Code: CREATE TABLE tabelle ( id INT NOT NULL AUTO_INCEMENT, hash CHAR(40) NOT NULL, ..weitere Spalten... ) Code: CREATE TABLE tabelle_klein ( id INT NOT NULL, hash CHAR(40) NOT NULL ) INSERT INTO tabelle_klein SELECT id, hash FROM tabelle; Code: CREATE INDEX sx_tabelle_klein ON tabelle_klein(hash); Prüfen ob innerhalb der Tabelle_klein doppelte "hash" vorhanden sind. Code: SELECT hash, COUNT(*) As Anzahl FROM tabelle_klein GROUP BY hash HAVING COUNT(*) > 1 Grüße Thomas | |
|
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| 2 Tabellen, 1 Ausgabe (+Dubletten abfangen) | madSoul | Datenbanken | 2 | 04.09.2006 10:37 |
| Dubletten - aber anders | Lampe | Datenbanken | 3 | 23.03.2006 20:32 |
| Multi-Array Dubletten löschen und sortieren | PHP Tipps 2005-2 | 3 | 11.06.2005 00:25 | |
| Dubletten herausfiltern mit verbinden 2er tabellen. | robo47 | Datenbanken | 2 | 12.05.2005 11:59 |
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| sql dubletten finden, mysql delete duplettes count, php csv dubletten, php array dubletten entfernen, bubblesort php, mysql having count millionen datensätze, dublettensuche mysql, php mysql dublettensuche, doebletten in sql löschen php, mysql php löschen und sortieren, grep dubletten, php datensatz dupletten, msql inner join dubletten, datenbank beschleunigen 20 mio datens, dublettenprüfung hashcode, dubletten mysql php insert, doubletten aus array entfernen php, db dubletten, \php\ group by dubletten, sql letzer datensatz einer dublette herausfinden |