Bobby: Performanceprobleme mit MySQL-Query

Moin

Ich habe mehrere Tabellen in MySQL aufgebaut, die ich mit JOINS verbinde.
______________
Tabelle:
jos_search_zweiradtyp

Felder:
id_typ
id_zweiradfirma
typ_name
id_zweiradklasse
______________
Tabelle:
jos_search_zweiradklasse

Felder:
id_klasse
klasse_name
_______________
Tabelle:
jos_search_zweiradfirma

Felder:
id_firma
firma_name
_______________
Tabelle:
jos_search_paare

Felder:
id_paar
typ_id
vorderrad
hinterrad

Folgende Abfrage , ohne die Abfrage der Tabelle jos_search_paare, funktioniert hervorragend schnell:

  
SELECT SQL_CALC_FOUND_ROWS jos_search_zweiradtyp.*, jos_search_zweiradfirma.firma_name hersteller, jos_search_zweiradklasse.klasse_name klasse  
FROM jos_search_zweiradtyp  
LEFT JOIN jos_search_zweiradklasse ON (id_klasse = id_zweiradklasse)  
LEFT JOIN jos_search_zweiradfirma ON (id_firma = id_zweiradfirma)  
LIMIT 0,20  

Wenn ich jedoch noch die Anzahl der gefundenen Paare die dem Typ zugeordnet sind mit heraussuchen lassen möchte dauert die Abfrage extrem lang. Ich habe folgendes probiert:

  
SELECT SQL_CALC_FOUND_ROWS jos_search_zweiradtyp.*, jos_search_zweiradfirma.firma_name hersteller, jos_search_zweiradklasse.klasse_name klasse ,  
(SELECT COUNT(id_paar) WHERE id_typ=typ_id) paare  
FROM jos_search_zweiradtyp  
LEFT JOIN jos_search_zweiradklasse ON (id_klasse = id_zweiradklasse)  
LEFT JOIN jos_search_zweiradfirma ON (id_firma = id_zweiradfirma)  
LIMIT 0,20  

Woran kann dieses Performanceproblem liegen? Wie kann ich dieses beheben? Für Hinweise bin ich dankbar.

Gruß Bobby

--
-> Für jedes Problem gibt es eine Lösung, die einfach, sauber und falsch ist! <-
### Henry L. Mencken ###
-> Nicht das Problem macht die Schwierigkeiten, sondern unsere Sichtweise! <-
## Viktor Frankl ###
ie:{ br:> fl:{ va:} ls:< fo:) rl:( n4:( de:> ss:) ch:? js:( mo:} sh:) zu:)
  1. Moin

    OK, selbst gelöst.

    Ich musste lediglich einen Index über die Spalte typ_id der Tabelle
    jos_search_paare legen, damit eine ordentliche Referenzierung möglich ist.

    Mein Fehler. Nun funktionierts wie gewünscht.

    Gruß Bobby

    --
    -> Für jedes Problem gibt es eine Lösung, die einfach, sauber und falsch ist! <-
    ### Henry L. Mencken ###
    -> Nicht das Problem macht die Schwierigkeiten, sondern unsere Sichtweise! <-
    ## Viktor Frankl ###
    ie:{ br:> fl:{ va:} ls:< fo:) rl:( n4:( de:> ss:) ch:? js:( mo:} sh:) zu:)