Mailinglisten-Archive |
Hallo > du hast vergessen zu sagen WAS die Abfrage denn liefern soll? Hä? Wo hab ich das vergessen? Liefern soll und tut sie auch alles zwischen SELECT und FROM. Oder versteh ich dich da falsch? > ... mhm auf jeden fall sollten deine ORDER BY - Spalten auch im index > sein!!! Sind sie. Sämtliche *_id sind in der jeweiligen Haupttabelle PrimaryKey. > ... außerdem sollte die allererste Tabelle, also die direkt nach dem > fROM sollte die sein die die wenigsten Datansätze zurückliefert, in > diesem Fall wohl kfz_service Bzw. die Tabelle nach der im WHERE gesucht wird ... ja das erscheint mir so betrachtet auch logisch. Das mit der Aufteilung der Abfrage auf mehrere JOINs, daran hatte ich bisher noch nicht gedacht. Das scheint wohl mein hauptsächlicher Denkfehler gewesen zu sein. > ... das GOUP BY sollte natürlich auch auf NUR auf indizierte Spalten > angweandt werden!!! Sind alle indiziert. > Grundsätzlich: es sollten möglichst ALLE Saplten die in WHERE, ORDER BY > oder GROUP BY verwendet werden in einem Index vorkommen Das ist mir bekannt und auch entsprechend angewendet. > 'Using temporary; Using filesort' ist das Schlechteste was überhaupt da > stehen kann bei EXPLAIN (hast du ein index auf kfz_service.s_id ???) kfz_service.s_id ist PRIMARY_KEY, also automatisch mit einem Index belegt. > hast die Indizes auf die akin-Spalten? Ja, auch wenn es sich um ENUM handelt und eh nur 2 integer Werte drin stehen. > in kfz_service ein Index auf s_id,akin Auch dort ist überall ein Index drauf. Ein erster Schnelltest verlief erfolgreich. Werd dann jetzt mal andere Abfrage entsprechend anpassen. THX -- Koala
php::bar PHP Wiki - Listenarchive