Hallo,
ich mal wieder
Also...csv import klappt, updates auch. Nun muss ich etwas an der performance schrauben, da ich eine Scriptlaufzeit von 90s, CPU Nutzung 30s und RAM 100MB habe. Ich werde in Schritten über CronJobs arbeiten. Später ggf. eigenen Server.
Bei 100 Datensätzen klappt der load data import und das lösche der Duplikate.
Bei 5000 Datensätzen klappt der load data import, aber beim löschen der Duplikate hängt sich das Script weg.
Query Zeit: 02:30min
Zeilen: 3076311
Nun die Anfänger-Frage:
1. Ist dieser Befehl zum löschen von Duplikaten wirklich so aufwendig für den Server bzw. sind solche Zeiten normal? (scheint ja der Fall zu sein). Jeder Datensatz wird hier ja auf 4999 andere geprüft. Richtig?
2. Gibt es eine Möglichkeit das ganze schneller durchzuführen? Index besteht bereits! Ggf. kann man beim verschieben von tmp->live ON DUPLICATE KEY nutzen und somit die Duplikate im tmp table belassen. Oder läuft das auf das gleiche Ergebnis hinaus?
Zu meinen Fragen habe ich auch schon die Technik meines Hosters kontaktiert. Die konnten mir hier aber auch nicht weiter helfen.
ich mal wieder
Also...csv import klappt, updates auch. Nun muss ich etwas an der performance schrauben, da ich eine Scriptlaufzeit von 90s, CPU Nutzung 30s und RAM 100MB habe. Ich werde in Schritten über CronJobs arbeiten. Später ggf. eigenen Server.Bei 100 Datensätzen klappt der load data import und das lösche der Duplikate.
Bei 5000 Datensätzen klappt der load data import, aber beim löschen der Duplikate hängt sich das Script weg.
Code:
DELETE t1 FROM tmp t1, tmp t2 WHERE t1.Unique = t2.Unique AND t1.id < t2.id AND t1.csv_upload_id = 1
Zeilen: 3076311
Nun die Anfänger-Frage:
1. Ist dieser Befehl zum löschen von Duplikaten wirklich so aufwendig für den Server bzw. sind solche Zeiten normal? (scheint ja der Fall zu sein). Jeder Datensatz wird hier ja auf 4999 andere geprüft. Richtig?
2. Gibt es eine Möglichkeit das ganze schneller durchzuführen? Index besteht bereits! Ggf. kann man beim verschieben von tmp->live ON DUPLICATE KEY nutzen und somit die Duplikate im tmp table belassen. Oder läuft das auf das gleiche Ergebnis hinaus?
Zu meinen Fragen habe ich auch schon die Technik meines Hosters kontaktiert. Die konnten mir hier aber auch nicht weiter helfen.

Kommentar