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:)