phpbar.de logo

Mailinglisten-Archive

Abfragen optimieren

Abfragen optimieren

Michael Donning mysql-de_(at)_lists.bttr.org
Mon, 29 Oct 2001 18:45:04 +0100


Hi Ralf,

> -----Original Message-----
> From: Ralf Eggert [mailto:ralf_(at)_in-greece.de]
>
> bin gerade dabei, die MySQL Abfragen beim Ueberarbeiten meiner Website
> zu optimieren. Habe auch schon sowohl das Manual als auch das Buch von
> Paul Dubois zum Thema Indizes und Abfragenoptimierung durchgelesen.
> Dennoch scheitere ich bei einigen Abfragen daran, dass die erstellten
> Indizes einfach nicht verwendet werden. Vielleicht hat jemand ja ein
> paar generelle Tipps fuer kompliziertere Abfragen (also komplizierter
> als die groesstenteils einfachen Beispiele aus dem Manual oder dem
> Buch)?

MySql hat (im Gegensatz zu anderen SQL-Datenbanken) den Vorteil, daß man ihm
notfalls mitteilen kann, welchen Weg es zu gehen hat.

In Abschnitt 6.4.1.1 JOIN Syntax wird das im Handbuch erläutert. mit USE
INDEX kann man z.B. bei einem JOIN vorschreiben, welcher Index zu verwenden
ist. Mit einem STRAIGHT_JOIN kann man eine bestimmte Reihenfolge beim
Abklappern von Tabellen vorschreiben. Diese Befehle sind meines Wissens aber
nicht kompatibel zu anderen SQL-Datenbanken.

Wenn man nicht derartig "rabiate" Eingriffe vornimmt, dann entscheidet der
Optimizer von MySql, und der entscheidet oft anhand von
Verteilungs-Statistiken über die einzelnen Indizes.
Im Zweifelsfall aktualisiert ein ANALYZE TABLE (4.5.2) diese Statistiken für
die Tabellen.

Ich habe Dein Problem im Einzelnen nicht nachvollzogen. Aber ich hoffe das
lenkt Dich in die richtige Richtung.

Gruss, Michael Donning

---
!!NEU!!
Fragen und Antworten zu MySQL und dieser Liste unter
-->>  http://www.4t2.com/mysql 



php::bar PHP Wiki   -   Listenarchive