Hallo Leute,
stehe vor einem Problem und komm nicht recht weiter
Eins vorweg, habe vor ein paar Tagen das erste mal seit 10 Jahren wieder mal PHP/MySql in Angriff genommen, kann also durchaus sein das ich einfach einen selten dämlichen Anfängerfehler mache ^^
Habe eine Tabelle in der sich ein Feld (varchar(20)) befindet, wo Artikelnummern reinkommen.
Ebenfalls ist in dieser Tabelle ein anderes Feld (decimal(10,2)), wo Preise reinkommen.
(insgesamt in der tabelle 12 Felder)
Ich importiere dort von einer csv-datei 40.000 datensätze, jedoch ist in dieser csv datei der Preis noch nicht enthalten, sondern gesondert in einer zweiten csv datei.
Mein Vorgang also:
-) Artikel importieren, dauert ein paar Sekunden. (40.000 Einträge)
-) Preise einfügen (mysql_query("UPDATE tabelle SET product_price = $price WHERE distributor_prodnum = $art"))
Und genau bei Punkt Zwei ist mein Problem. Dieses Update dauert ewig.
Habe index auf das Feld gelegt wonach gesucht wird, habe die Datenbank mit phpmyadmin optimiert, helfen tut irgendwie nichts.
Das Update benötigt für 100 Produkte schon 18 Sekunden. ...was bei 40.000 passiert kann man sich also vorstellen.
Um auszuschließen das es irgendwas mit der CSV, bzw. meinem Import/Update-Script von CSV, zu tun hat habe ich testweise einfach mal ein zweites Table angelegt. Dort die zweite CSV importiert, und dann quasi ein Update von SQL nach SQL gemacht. Gleich langsam.
Hoffe mein Geschreibe war so halbwegs verständlich, und noch mehr hoffe ich das jemand eine Idee zum meinem Problem hat
PS. die Preise generell auf ein andres Table auszulagern, und dann einfach von dort bei Bedarf zu holen, ist zwar eine Option. Möchte ich aber vermeiden da ich sonst alles überarbeiten anpassen muss.
Danke schonmal und schöne Grüße
stehe vor einem Problem und komm nicht recht weiter
Eins vorweg, habe vor ein paar Tagen das erste mal seit 10 Jahren wieder mal PHP/MySql in Angriff genommen, kann also durchaus sein das ich einfach einen selten dämlichen Anfängerfehler mache ^^
Habe eine Tabelle in der sich ein Feld (varchar(20)) befindet, wo Artikelnummern reinkommen.
Ebenfalls ist in dieser Tabelle ein anderes Feld (decimal(10,2)), wo Preise reinkommen.
(insgesamt in der tabelle 12 Felder)
Ich importiere dort von einer csv-datei 40.000 datensätze, jedoch ist in dieser csv datei der Preis noch nicht enthalten, sondern gesondert in einer zweiten csv datei.
Mein Vorgang also:
-) Artikel importieren, dauert ein paar Sekunden. (40.000 Einträge)
-) Preise einfügen (mysql_query("UPDATE tabelle SET product_price = $price WHERE distributor_prodnum = $art"))
Und genau bei Punkt Zwei ist mein Problem. Dieses Update dauert ewig.
Habe index auf das Feld gelegt wonach gesucht wird, habe die Datenbank mit phpmyadmin optimiert, helfen tut irgendwie nichts.
Das Update benötigt für 100 Produkte schon 18 Sekunden. ...was bei 40.000 passiert kann man sich also vorstellen.
Um auszuschließen das es irgendwas mit der CSV, bzw. meinem Import/Update-Script von CSV, zu tun hat habe ich testweise einfach mal ein zweites Table angelegt. Dort die zweite CSV importiert, und dann quasi ein Update von SQL nach SQL gemacht. Gleich langsam.
Hoffe mein Geschreibe war so halbwegs verständlich, und noch mehr hoffe ich das jemand eine Idee zum meinem Problem hat
PS. die Preise generell auf ein andres Table auszulagern, und dann einfach von dort bei Bedarf zu holen, ist zwar eine Option. Möchte ich aber vermeiden da ich sonst alles überarbeiten anpassen muss.
Danke schonmal und schöne Grüße
Kommentar