2008-09-02 6 views
1

Eine MySQL-Abfrage läuft seit dem Hinzufügen einer group_concat-Klausel wesentlich langsamer. Zurzeit wird diese Abfrage sieht wie folgt aus:group_concat Abfrageleistung

select ... group_concat(distinct category.name) .... from page where 
left outer join page_category on page.id = page_category.page_id 
left outer join category on page_category.category_id = category.id 
.... 
group by page.id 

Wie unter anderem in der Abfrage, erwähnt, meine Anwendung hat drei Tabellen: Seite, die Kategorie und page_category. Eine Seite kann keiner oder mehreren Kategorien zugeordnet sein. Derzeit haben Seite, Seitenkategorie und Kategorie jeweils 9.460, 20.241 und 10 Einträge.

Kann jemand mir helfen, diese Abfrage zu verbessern, um seine Leistung zu verbessern?

Antwort

1

Ich fehlte ein Index in der page_category.page_id Feld. Das löst das Problem.

+0

Sie können Ihre eigenen Antworten auf Ihre Fragen akzeptieren. – Blazemonger