Hallo,
Ich bräuchte ein Paar Ideen um ein Updateproblem zu Lösen.
Ich muss jeden Tag Datensätze in meiner Datenbank Updaten, dabei gehe ich folgendermaßen vor:
.sql Datei holen und in tmp speichern.
Tabelle x_world erstellen
Befehle in .sql Datei ausführen.
SQL Befehl:
SQL Befehl:
x_world Löschen
Dieses Script wird jeden morgen per Cronjob ausgeführt.
Es gibt verschiedene Get parameter welche die jeweiligen Tabellen ansprechen.
In der x_world sind bis zu 50.000 Befehle im Format:
In meiner Datenbank müssen ca. 45 Tabellen mit diesem Verfahren geupdatet werden Tendenz steigend. (die x_world Datensätze kommen dabei übrigends immer von verschiedenen Servern sind also jedes mal verschieden.)
Das Problem beim meinen Verfahren ist, das immer nur eine Welt gleichzeitig geupdatet werden kann. Die Daten werden um 7 Uhr zur Verfügung gestellt.
Ich benötige pro Tabelle ca. 5 Minuten inclusive puffer.
Das heißt ich bin momentan erst zwischen 10-11 Uhr am Morgen fertig.
Je mehr Tabellen ich Updaten muss, desto mehr Zeit benötigt das ganze Update verfahren.
Das Problem liegt an der x_world. Jede .sql Datei schiebt Ihre Daten erstmal in diese Tabelle. Das heißt ich kann das Script nicht mehrmals zur gleichen Zeit laufen lassen weil sie sich dann in der x_world überschneiden / überschreiben würden.
Ich könnte jetzt hingehen und per replace mit PHP alle x_world in der .sql Datei umschreiben, das würde aber bei 50.000 Datensätze pro Datei zu lange dauern sodass das raus fällt.
Hat jemand eine Idee wie man dieses Problem lösen kann?
Danke und Gruß
roest
Ich bräuchte ein Paar Ideen um ein Updateproblem zu Lösen.
Ich muss jeden Tag Datensätze in meiner Datenbank Updaten, dabei gehe ich folgendermaßen vor:
.sql Datei holen und in tmp speichern.
Tabelle x_world erstellen
Befehle in .sql Datei ausführen.
SQL Befehl:
Code:
TRUNCATE $var_world
Code:
INSERT INTO $var_world SELECT * FROM x_world
Dieses Script wird jeden morgen per Cronjob ausgeführt.
Es gibt verschiedene Get parameter welche die jeweiligen Tabellen ansprechen.
In der x_world sind bis zu 50.000 Befehle im Format:
Code:
INSERT INTO `x_world` VALUES ([...]);
Das Problem beim meinen Verfahren ist, das immer nur eine Welt gleichzeitig geupdatet werden kann. Die Daten werden um 7 Uhr zur Verfügung gestellt.
Ich benötige pro Tabelle ca. 5 Minuten inclusive puffer.
Das heißt ich bin momentan erst zwischen 10-11 Uhr am Morgen fertig.
Je mehr Tabellen ich Updaten muss, desto mehr Zeit benötigt das ganze Update verfahren.
Das Problem liegt an der x_world. Jede .sql Datei schiebt Ihre Daten erstmal in diese Tabelle. Das heißt ich kann das Script nicht mehrmals zur gleichen Zeit laufen lassen weil sie sich dann in der x_world überschneiden / überschreiben würden.
Ich könnte jetzt hingehen und per replace mit PHP alle x_world in der .sql Datei umschreiben, das würde aber bei 50.000 Datensätze pro Datei zu lange dauern sodass das raus fällt.
Hat jemand eine Idee wie man dieses Problem lösen kann?
Danke und Gruß
roest
