Eddie: Kann ich diese MySQL-Anfrage optimieren?

Beitrag lesen

Hallo allerseits,

na das sagt dir immerhin schon mal, dass keine Keys benutzt werden.
die anzahl der möglichen Zeilen in ROWS ist auch etwas arg inakkurat. der Optimzier weiss also gar nichts.. und arbeitet blind alles ab...

vergleich doch das mal mit den EXPLAINs der 2 geteilten queries...

AHA! Das hat doch schonmal was gebracht:
die 2 geteilten Queries verwenden die Keys! Allerdings zeigt sich hier auch, wo das Problem liegen koennte.

Wenn ich naemlich in der zweiten Teilabfrage

SELECT DISTINCT c.*
FROM contentTable c, rel_content_category1 rel1, rel_content_category2 rel2
WHERE
c.id = rel2.contentID
AND
rel2.catID = '6'

"rel_content_category1 rel1"  rausnehme (aus der FROM-Klausel), dann sehen die Zahlen bei ROWS gleich viel vernuenftiger aus!
Es scheint also ein Problem zu sein, Tabellen zu nennen, sie dann aber nicht zu verwenden.

Stellt sich mir die Frage, wie ich das in der eigentlichen Abfrage realisieren kann? Dort wird ja mittels 'OR' jeweils eine der beiden rel-Tabellen nicht verwendet - und ich glaube, daran liegt es. Kann ich das irgendwie einbauen, ohne die Abfrage zu aendern?

Eddie

--
Old men and far travelers may lie with authority.