Hallo in die Runde,
ich habe ein Problem mit einer großen Datenbank. Die DB hat derzeitig insgesamt ca. 580 Mio. Einträge.
Teilweise werden die Tabellen im Cache gehalten.
Vor kurzem wurde eine Prüfung gemacht ob die Daten alle in Ordnung sind. Dabei wurde festgestellt, dass es ein paar (ca. 10000) doppelte Einträge gab.
Ich bin mir gerade nicht sicher wie sowas zustande kommen kann.
Kurzer Background zu de DB:
als Speicher-Engine nutze ich InnoDB
Die MySQL Server ist im Grunde unkonfiguriert. Das einzige was ich explizit eingestellt habe ist die Anzahl der Verbindungen (sehr viele viele).
die Haupttabelle ist in etwa so aufgebaut:
ID | genauer Name des Datensatzes (Eindeutig) | Einlesedatum | weitere Daten...
Bevor ich einen neuen Datensatz einlese, frage ich die Tabelle ab ob der Datensatzname bereits bekannt ist. -- Wenn ja --> dann mach nichts ansonsten schreibe den Datensatz
Eigentlich ist die Abfrage eindeutig.
Mir ist aufgefallen, dass die doppelten Einträge fortlaufende IDs hatten. Das heißt wohl für mich, dass die Abfrage die durchgeführt wurde kein Ergebnis geliefert hat und deswegen der Datensatz hinzugefügt wurde.
Die Frage ist jetzt für mich ob die DB mit dem Cache nicht zurecht kommt oder ob es vielleicht noch andere Probleme gibt.
Hat schon jemand von euch auch sowas gehabt? Woran hat es gelegten? Hat einer einen Ansatz wie ich das Problem eingrenzen kann?
Viele Grüße
Artur
Verschoben. ~Thunderbolt
ich habe ein Problem mit einer großen Datenbank. Die DB hat derzeitig insgesamt ca. 580 Mio. Einträge.
Teilweise werden die Tabellen im Cache gehalten.
Vor kurzem wurde eine Prüfung gemacht ob die Daten alle in Ordnung sind. Dabei wurde festgestellt, dass es ein paar (ca. 10000) doppelte Einträge gab.
Ich bin mir gerade nicht sicher wie sowas zustande kommen kann.
Kurzer Background zu de DB:
als Speicher-Engine nutze ich InnoDB
Die MySQL Server ist im Grunde unkonfiguriert. Das einzige was ich explizit eingestellt habe ist die Anzahl der Verbindungen (sehr viele viele).
die Haupttabelle ist in etwa so aufgebaut:
ID | genauer Name des Datensatzes (Eindeutig) | Einlesedatum | weitere Daten...
Bevor ich einen neuen Datensatz einlese, frage ich die Tabelle ab ob der Datensatzname bereits bekannt ist. -- Wenn ja --> dann mach nichts ansonsten schreibe den Datensatz
Eigentlich ist die Abfrage eindeutig.
Mir ist aufgefallen, dass die doppelten Einträge fortlaufende IDs hatten. Das heißt wohl für mich, dass die Abfrage die durchgeführt wurde kein Ergebnis geliefert hat und deswegen der Datensatz hinzugefügt wurde.
Die Frage ist jetzt für mich ob die DB mit dem Cache nicht zurecht kommt oder ob es vielleicht noch andere Probleme gibt.
Hat schon jemand von euch auch sowas gehabt? Woran hat es gelegten? Hat einer einen Ansatz wie ich das Problem eingrenzen kann?
Viele Grüße
Artur
Verschoben. ~Thunderbolt
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Thunderbolt“ ()