mysql Geschwindigkeit

port29

deus.Server
Hallo,

ich habe ein Problem. Ich habe folgende Abfrage:

Code:
SELECT a.artikel_id AS artikel_id, a.titel AS titel, a.preis AS preis, d.wert AS bild1, e.wert AS uebersicht_text, bestell_f.wert AS bestellnr, g.wert AS tech_det, h.wert AS zielgruppe, i.wert AS meinung, j.wert AS groesse, bild2.wert AS bild2, bild3.wert AS bild3, bild4.wert AS bild4, bild5.wert AS bild5, bild6.wert AS bild6, bild7.wert AS bild7, bild8.wert AS bild8, bild9.wert AS bild9, bild10.wert AS bild10
FROM artikel a
INNER JOIN objektgruppenzuordnung b ON a.artikel_id = b.artikel_id
INNER JOIN features d ON d.vorlage_item_id =58
AND a.artikel_id = d.artikel_id
INNER JOIN features e ON e.vorlage_item_id =52
AND a.artikel_id = e.artikel_id
INNER JOIN features bestell_f ON bestell_f.vorlage_item_id =57
AND a.artikel_id = bestell_f.artikel_id
INNER JOIN features g ON g.vorlage_item_id =53
AND a.artikel_id = g.artikel_id
INNER JOIN features h ON h.vorlage_item_id =55
AND a.artikel_id = h.artikel_id
INNER JOIN features i ON i.vorlage_item_id =56
AND a.artikel_id = i.artikel_id
INNER JOIN features j ON j.vorlage_item_id =63
AND a.artikel_id = j.artikel_id
INNER JOIN features bild2 ON bild2.vorlage_item_id =59
AND a.artikel_id = bild2.artikel_id
INNER JOIN features bild3 ON bild3.vorlage_item_id =60
AND a.artikel_id = bild3.artikel_id
INNER JOIN features bild4 ON bild4.vorlage_item_id =61
AND a.artikel_id = bild4.artikel_id
INNER JOIN features bild5 ON bild5.vorlage_item_id =62
AND a.artikel_id = bild5.artikel_id
INNER JOIN features bild6 ON bild6.vorlage_item_id =65
AND a.artikel_id = bild6.artikel_id
INNER JOIN features bild7 ON bild7.vorlage_item_id =66
AND a.artikel_id = bild7.artikel_id
INNER JOIN features bild8 ON bild8.vorlage_item_id =67
AND a.artikel_id = bild8.artikel_id
INNER JOIN features bild9 ON bild9.vorlage_item_id =68
AND a.artikel_id = bild9.artikel_id
INNER JOIN features bild10 ON bild10.vorlage_item_id =69
AND a.artikel_id = bild10.artikel_id
WHERE shop_id = '6'
AND a.artikel_id = '56'

In der Feature Tabelle sind ca. 2000 Werte. Die Ausführungszeit liegt bei etwa 4 Sekunden. Es läuft der 4.1.21 Server. Hat jemand von euch eine Idee, wie man die Ausführungszeit verkürzen kann?
 
Die vielen Joins sind überflüssig und lassen sich wohl auf weit aus weniger minimieren. Die IDs solltest du lieber als Bedingung (WHERE-Klausel) einsetzen.
Was genau versuchst du denn zu realisieren?
 
Also es geht um einen Shop. In dem Shop gibt es zwei Tabellen, in denen Daten zu dem Artikel stehen. Die Eine Tabelle ist artikel, die andere Tabelle ist features. Die Tabelle Features hat als Informationsträger 3 Spalten. artikel_id (naja, eben die ID des artikels, zu dem das Feature gehört), vorlage_item_id (ist der Typ des Features, z.B. die Bestellnummer oder ein Bild) und wert (ja, der Wert halt). Jetzt möchte ich alle Informationen mit einem Query abfragen.
 
In der Artikel Tabelle gibt es ein Primary Key: artikel_id
In der feature Tabelle gibt es ein Index über artikel_id und vorlage_item_id
 
Zurück