Hi,
ich bin kein Profi eher jemand ders versucht. Bin nun seit einer Woche dabei folgendes zu realisieren. Es funktioniert auch, aber es dauert bei 400tsd Datensätzen einfach sehr lang. Gibt es eine andere Lösung welche der Geschwindigkeit ein bisschen entgegen kommt?
Ich habe einen Webshop mit 276.000 Artikel, derzeit. Vom GH bekomm ich den Aktuellen Lagerbestand als CSV Datei mit 468.00 Artikeln.
Eine product_temp mit den Spalten wie in der CSV ist vorhanden und lädt diese auch vom FTP herrunter, speichert diese in der product_temp. Er gleicht diese auch mit der product ab und trägt diese ein.
Die Spalten aus product_temp sind nicht gleich product!
Nur die Geschwindigkeit ist ein bisschen zu langsam. Als Test gestern Abend auf heute morgen waren es 10 Stunden und mehr.
Bitte fragt mich keine genauen Deteials des Codes, ich bin froh das ich es so hinbekommen habe, und wäre über Hilfe sehr dankbar.
Hier hab ich den Code welchen ich benutze.
Alles anzeigen
ich bin kein Profi eher jemand ders versucht. Bin nun seit einer Woche dabei folgendes zu realisieren. Es funktioniert auch, aber es dauert bei 400tsd Datensätzen einfach sehr lang. Gibt es eine andere Lösung welche der Geschwindigkeit ein bisschen entgegen kommt?
Ich habe einen Webshop mit 276.000 Artikel, derzeit. Vom GH bekomm ich den Aktuellen Lagerbestand als CSV Datei mit 468.00 Artikeln.
Eine product_temp mit den Spalten wie in der CSV ist vorhanden und lädt diese auch vom FTP herrunter, speichert diese in der product_temp. Er gleicht diese auch mit der product ab und trägt diese ein.
Die Spalten aus product_temp sind nicht gleich product!
Nur die Geschwindigkeit ist ein bisschen zu langsam. Als Test gestern Abend auf heute morgen waren es 10 Stunden und mehr.
Bitte fragt mich keine genauen Deteials des Codes, ich bin froh das ich es so hinbekommen habe, und wäre über Hilfe sehr dankbar.
Hier hab ich den Code welchen ich benutze.
PHP-Quellcode
- <?php
- ini_set('display_errors', 1);
- ini_set('display_startup_errors', 1);
- error_reporting(E_ALL);
- $start= microtime(true);
- //$source='/var/www/clients/client2/web7/web/3333333333333333.CSV';
- $source='ftp://333333:3333333@3333333.33333333.de/DATEN/333333333.CSV';
- $uploadfile='/var/www/clients/client2/web7/web/DATEN/'.basename($source);
- file_put_contents($uploadfile,file_get_contents($source)); //läd Datei auf den Server
- //$mysqli = new mysqli("localhost", "c2test", "3333", "c2test");
- $mysqli = new mysqli("333333333333333333333", "test-33333333", "3333#", "test-333333");
- $loadData = "LOAD DATA LOCAL INFILE '$uploadfile'
- INTO TABLE product_temp
- FIELDS TERMINATED BY ';' IGNORE 1
- LINES (Artikelnummer, EAN, Herstellerartikelnummer, Hersteller, ME, PE , Preis_pro_PE, KVE, Bestand)";
- //läd Datei in Datenbank
- $mysqli->multi_query($loadData);
- $updateData = "UPDATE product s INNER JOIN product_temp c
- USING(ean) SET s.stock=c.Bestand, s.available_stock=c.Bestand";
- //Updatet alle Änderrungen in Artikel-DB
- $mysqli->multi_query($updateData);
- $truncate = "TRUNCATE TABLE product_temp";
- $mysqli->multi_query($truncate);
- if($loadData !== FALSE)
- {
- echo("Daten erfolgreich bearbeitet");
- }else{
- echo("Es ist eine Fehler aufgetreten");
- }
- $dauer = microtime(true) - $start;
- echo "<br />Verarbeitung des Skripts: $dauer Sek.";
- ?>
Ich würd zu gern die Welt verändern, doch Gott rückt den Quellcode net raus.