Snees (17.03.2012)
Thema: Duplikate in einer Datenbank
-
12.03.2012, 13:35 #1
- Registriert seit
- 19.11.2011
- Beiträge
- 229
Thanked 102 Times in 64 PostsDuplikate in einer Datenbank
Guten Morgen ,
momentan schreibt ein Programm von mir alle paar Sekunden ~1000 zufällige Zeichenketten in eine Datenbank (online). Nun sind natürlich Duplikate dabei.
Wie kann ich diese am besten Löschen bzw. verhindern?
- Vor dem Einfügen im Programm prüfen
- Nachts einen Job laufen lassen, welcher alle bereinigt
- ...
Eventuell hat von euch einer mehr Ideen.
-
12.03.2012, 13:45 #2
AW: Duplikate in einer Datenbank
Leg eine Liste an mit den bereits benutzen Zeichenketten und prüfe diese vor dem einfügen in die Datenbank bzw. lass dir alle Zeichenketten ausgeben und lass diese auch von einem Programm prüfen und ggf. löschen.
LG
-
12.03.2012, 13:50 #3
- Registriert seit
- 19.11.2011
- Beiträge
- 229
Thanked 102 Times in 64 PostsAW: Duplikate in einer Datenbank
Es handelt sich um eine Datenbank mit mehr als 1.000.000 Datensätzen.
So wie du das hier beschreibst würde die Workflow so aussehen:
- Programm wird gestartet
-- Programm holt sich alle Datensätze der Datenbank und speichert sie
-- Programm generiert Zeichenkette, durchsucht die Liste und schickt es ggf an die Datenbank.
- Programm ende
d.h. Nach jeder generierten Kette müsste ich über 1.000.000 Zeichenketten durchsuchen.
Das geht wahrscheinlich sehr gegen die Performance...
-
12.03.2012, 13:52 #4
AW: Duplikate in einer Datenbank
Ich kann schlecht einschätzen wie es schneller geht, aber könnte man nicht von einem PHP-Script aus per MySQL-Abfrage prüfen, ob der Eintrag vorhanden ist, bevor dieser eingefügt wird? Das wird vermutlich schneller gehen als mit einer eigenständigen Anwendung.
Code:SELECT zeichenkette FROM table WHERE zeichensatz = 'sda0-sa8d-6asd-331c-3ds2'
-
12.03.2012, 14:01 #5
- Registriert seit
- 19.11.2011
- Beiträge
- 229
Thanked 102 Times in 64 Posts
-
12.03.2012, 14:20 #6
AW: Duplikate in einer Datenbank
Bei so einer Menge an Datensätzen ist ein Cronjob durchaus von Vorteil. Wie du schon oben beschrieben hast, die komplette DB einmal auf Duplikate durchsuchen. Das Problem wird hierbei die Zeit sein, die das Skript bei so einer großen Anzahl (wofür du die auch immer brauchst!?) braucht.
Ich weiß ja nicht was du damit vorhast, aber für mich würde es plausibler klingen wenn du die Teile direkt im Script abfragen lässt, was auch immer du abfragst.
-
12.03.2012, 16:04 #7
- Registriert seit
- 19.11.2011
- Beiträge
- 229
Thanked 102 Times in 64 PostsAW: Duplikate in einer Datenbank
Okay das Thema hat sich soeben erledigt.
Einfach ein identifizierendes Datenfeld (nicht den PrimaryKey) auf UNIQUE setzen und es sind gar keine Duplikate möglich.
-
The Following User Says Thank You to DANP For This Useful Post:
Ähnliche Themen
-
Formulardaten an Datenbank senden
Von Ruffy im Forum PHPAntworten: 4Letzter Beitrag: 20.02.2014, 16:36 -
Datenbank viel zu groß?
Von Entrafiz im Forum PHPAntworten: 7Letzter Beitrag: 23.11.2012, 13:52 -
Datenbank Error
Von Killerspider im Forum SupportAntworten: 1Letzter Beitrag: 21.02.2012, 17:06
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.