phpbar.de logo

Mailinglisten-Archive

[dbs] Abfrageoptimierung

[dbs] Abfrageoptimierung

Sven phpbar at koalashome.de
Mon Okt 27 15:35:51 CET 2003


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