MYSQL Lock Table Verständnissproblem

Daniel_CB

Aktives Mitglied
Hallo, ich sitze gerade an einem Produktdatenscript mein Problem ist die mangelnde Performance bei diesem

da ich nun dabei bin alles etwas umzubauen wollte ich in dem zug auch an der perfomance dieses Arbeiten.
Derzeit ist es so gelöst das ich bis zu 1000 Insert und updatestatements in einer schleife zu einer langen kette zusammenfüge und auf die Datenbank loslasse. Ich habe nun gelesen das ich mit LOCK TABLES mehr performance erreichen kann da nicht nach jeder Zeile alles neu indiziert werden muss. Aber irgendwie ändert sich nichts an der Performance. Ich will erreichen das in der Zeit der Update/Inserts nur der User ps_write lesen und schreiben kann und kein ander. Aufgrund der Komplexität des Portals habe viele MYSQL-Benutzer.

ps_write zum schreiben und updaten
ps_read zum lesen


LOCK TABLES `tbl_osp_anbieter` READ;
hier die Anweisungen
UNLOCK TABLES;

Ich hoffe ihr versteht was ich meine und könnt mir helfen...

Gruß Daniel

Nachtrag:
MYSQL 5.0.37
Arbeite mit ADODB für PHP 5
 
QUOTE (Daniel_CB @ Mi 9.5.2007, 22:24)Derzeit ist es so gelöst das ich bis zu 1000 Insert und updatestatements in einer schleife zu einer langen kette zusammenfüge und auf die Datenbank loslasse.

Das sieht für mich extrem schlecht aus.

Läßt sich das nicht mit einem Insert und einem Update erledigen?

Stichwort Sql als mengenbasierte Sprache - bei der man es möglichst vermeiden sollte, große Inserts/Updates manuell zeilenweise zu erledigen.
 
Also ich verstehe den Satz so, dass er eine lange "Zeichenkette" erzeugt und diese dann mit einem Insert an die DB schickt. Alles andere wäre wahrlich nicht gut gelöst.
 
QUOTE (magadoo @ Do 10.5.2007, 23:02)Also ich verstehe den Satz so, dass er eine lange "Zeichenkette" erzeugt und diese dann mit einem Insert an die DB schickt. Alles andere wäre wahrlich nicht gut gelöst.

Die Daten, die eingefügt werden, müssen ja von irgendwoher stammen.

Wenn die aus der Datenbank selbst stammen (Berechnungen, Datum ändern bzw. Zeile mit neuem Datum hinzufügen), dann ist diese 'lange Zeichenkette' die schlechte Lösung.

Denn so etwas läßt sich dann auch mit (je nach Aufgabe) nur einem Insert und einem Update erledigen - und nicht zeilenweise für 1000 Zeilen.

Sprich: Wie sehen die Insert/Update-Befehle konkret aus, was machen die, wo kriegen die ihre neuen Daten her?
 
Zurück
Oben