Hallo zusammen,
Mein Provider hat mir geschrieben, ich solle meine MySQL Datenbank-Abfragen optimieren, da diese aktuell deren Server überlasten.
Bin leider nicht so fit darin, deswegen würd mich freuen, wenn jemand helfen könnte.
Hier die Abfrage:
SELECT feld1 , feld2 , feld3, feld4 FROM tabelle1
where (feld3 <> '') AND
(feld1 like '% suchstring %' OR
feld2 like '% suchstring %' OR
feld3 like '% suchstring %' OR
feld4 like '% suchstring %')
order by feld4 ASC limit 0, 200;
Die Idee bei der Abfrage ist, dass das feld 3 nicht leer sein darf und zusätzlich der Suchstring als eigenes Wort (deswegen die Leerzeichen vor und nach dem Suchstring) in einem der 4 Tabellenfelder sein soll.
tabelle 1 verfügt über einen Primärschlüssel. Auf Feld1 wurde ein Index gelegt, da es hier doppelte Einträge gibt. Die anderen Felder haben kein Index, weil nur unterschiedliche Einträge (und dann macht ein Index doch keinen Sinn, oder?)
Besten Gruss
infosys
Mein Provider hat mir geschrieben, ich solle meine MySQL Datenbank-Abfragen optimieren, da diese aktuell deren Server überlasten.
Bin leider nicht so fit darin, deswegen würd mich freuen, wenn jemand helfen könnte.
Hier die Abfrage:
SELECT feld1 , feld2 , feld3, feld4 FROM tabelle1
where (feld3 <> '') AND
(feld1 like '% suchstring %' OR
feld2 like '% suchstring %' OR
feld3 like '% suchstring %' OR
feld4 like '% suchstring %')
order by feld4 ASC limit 0, 200;
Die Idee bei der Abfrage ist, dass das feld 3 nicht leer sein darf und zusätzlich der Suchstring als eigenes Wort (deswegen die Leerzeichen vor und nach dem Suchstring) in einem der 4 Tabellenfelder sein soll.
tabelle 1 verfügt über einen Primärschlüssel. Auf Feld1 wurde ein Index gelegt, da es hier doppelte Einträge gibt. Die anderen Felder haben kein Index, weil nur unterschiedliche Einträge (und dann macht ein Index doch keinen Sinn, oder?)
Besten Gruss
infosys
Comment