Join dauert ewig lange

webdream

Neuer Benutzer
Beiträge
1
Hallo zusammen,
ich habe zwei Tabellen, die ich miteinander verbinden möchte.

1. TArtikel pbf
ArtikelID, Hersteller, Bezeichnung

2. TWebArtikel pro
ArtikelID, Aktiv (ja, nein), Content

Hier mein SQL Abfrage:
SELECT pro.ArtikelID, pbf.Bezeichnung1, pbf.HerstellerID
FROM `twebartikel` pro
INNER JOIN tartikel pbf
WHERE pro.Aktiv = '1'
AND pro.ArtikelID LIKE '%$suchwort%'
OR pbf.Bezeichnung1 LIKE '%$suchwort%'
LIMIT 0 ,10
Ich möchte die Werte nur haben, wenn in der TWebArtikel die ArtikelID im Feld Aktiv mit einer 1 (ja) gekennzeichnet ist.
Die Abfrage dauert mitunter >22 Sekunden.
TWebArtikel = 2500 Einträge
TArtikel = 9800 Einträge

Habt Ihr eine Idee, wie ich das optimieren kann?
 
Werbung:
Ich sehe keine JOIN-Condition. Ich sehe dafür weitere syntaktische Fehler wie z.B. die Spalte pbf.Bezeichnung1, die es aber laut Deiner Beschreibung nicht gibt. Dein SQL sollte nur eines liefern: einen Fehler.

Tue bitte Dir und uns den Gefallen und zeige das, was Du *wirklich* machst, und nicht, was Du *ungefähr* meinst zu machen.

was die Dauer anbelangt: schaue in's Explain. Tue das nicht ohne Kotzbeutel in Reichweite, weil zu viel mehr als Brechmittel taugt das MySQL ja nun mal nicht.

Warum meinst Du, Dein %suchwort% sowohl in artikelid als auch in bezeichnung1 finden zu können? Das deutet auf ein kapottes Design hin.
 
Werbung:
Nach meinem Verständnis musst du auch
Code:
AND pro.ArtikelID LIKE '%$suchwort%'
OR pbf.Bezeichnung1 LIKE '%$suchwort%'
klammern, oder pro.Aktiv = '1' in die Join-Condition aufnehmen.
 
Zurück
Oben