Ich habe ein Performanceproblem und bin mir sicher, dass es hausgemacht ist, weiß aber nicht, wo ich ansetzen soll.
tab1: (ca. 300.000 Zeilen)
id int(10)
feld1 varchar (30)
sperre set 'ok,gesperrt'
(weitere 10 Felder)
Primary Key ist id, auf feld1 liegt ein Index.
tab2: (ca 1000 Zeilen)
feld2 varchar (30)
Index liegt auf feld2
Feld2 enthält solche Daten:
%text1%
%text2%
usw.
Die Aufgabe besteht darin, alle Zeilen in tab als 'gesperrt' zu markieren, wenn tab1.feld1 LIKE tab2.feld2 ist.
Ich kann nur mit phpmyadmin umgehen und habe dort folgenden SQL-Befehl eingegeben:
mit der Idee, erstmal zu schaun ob es eine Treffermenge gibt, und dann das Statement so abzuändern:
Bis zum Update kam ich allerdings nicht mehr, das Select-Statement habe ich nach 20 Min über die Taskliste gekillt.
Wo habe ich den Murks eingebaut?
tab1: (ca. 300.000 Zeilen)
id int(10)
feld1 varchar (30)
sperre set 'ok,gesperrt'
(weitere 10 Felder)
Primary Key ist id, auf feld1 liegt ein Index.
tab2: (ca 1000 Zeilen)
feld2 varchar (30)
Index liegt auf feld2
Feld2 enthält solche Daten:
%text1%
%text2%
usw.
Die Aufgabe besteht darin, alle Zeilen in tab als 'gesperrt' zu markieren, wenn tab1.feld1 LIKE tab2.feld2 ist.
Ich kann nur mit phpmyadmin umgehen und habe dort folgenden SQL-Befehl eingegeben:
PHP-Code:
SELECT * FROM tab1,tab2 WHERE feld1 LIKE feld2;
PHP-Code:
UPDATE tab1,tab2 SET sperre='gesperrt' WHERE feld1 LIKE feld2;
Wo habe ich den Murks eingebaut?
Kommentar