Mysql performance bei 33.000 INSERT bzw. UPDATE Queries

uprocka

Grünschnabel
Hallo,

ich habe die Frage so ähnlich schon im PHP Bereich gestellt ( http://www.tutorials.de/tutorials196189.html ), sie macht hier aber evtl. mehr Sinn:

1. Ich lese eine Datei mit 33.000 Zeilen ein,
2. Aus jeder Zeile extrahiere ich eine bestimmte Zeichenkette (z.B. von Zeichen 5 - 15).
3. Diese Zeichenkette möchte ich jeweils in der DB speichern.

Wie auch immer, es ergibt sich daraus eine Schleife die 33.000 ausgeführt wird,
innerhalb der Schleife ist ein Mysql-Query ("UPDATE...." oder "INSERT..."),
somit wird auch dieses Query 33.000 ausgeführt.

Mir ist klar, dass dies einen gewissen Aufwand für die DB bedeutet,
nur wird in meinem Fall diese aber für etliche Minuten lahmgelegt (95% Last über 20 Minuten!)

Ist das normal oder kann man da extrem optimieren?
 
Ist die WHERE bedingung in Deinem Beispiel realistisch? Weil so macht das alles ja keinen Sinn oder? Sonst könntest Du auch nur den letzten Wert aus der TXT-Datei updaten...

Wenn Du z.b. 33000 Zeilen in der Tabelle hast und immer dort updatest wo wert2 = 5 ist, dann kann es viell. sein das die DB 20000 Zeilen updaten muss? und dass 33000 mal? Das is schon nich ganz so wenig behaupte ich mal !


Optimieren kann man (fast) immer. Dazu müsste man aber mehr hintergrundinfos haben.
 
Zurück