Select Page

MySQL Performance Serie – Teil 9: Verwendung von Indizes

by | Oct 15, 2008 | MySQL, Serien

Fehlende oder falsche Indizes sind ein häufiger Grund für eine schlechte Abfrageperformance. Mit Hilfe des Slow-Query-Logs lassen sich vorhandene Langläufer meist auch gut identifizieren, jedoch kommt dann natürlich die Frage des Warum?
Auskunft über den Query-Execution-Plan und die Verwendung von Indizes gibt der Befehl Explain.
Folgendes Beispiel zeigt die Ausgabe des Befehls

  • EXPLAIN SELECT name, strasse, land FROM adressen WHERE strasse= “hauptstrasse” and name = “Erk” ORDER BY strasse;

select_type: SIMPLE
table: adressen
type: ref
possible_keys: strasse, name
key: strasse
key_len: 150
ref: const
rows: 1229
Extra: Using where; Using filesort

Die Ausgabe des Explain-Befehls gibt Aufschluss über die vorhandenen (possible_keys) und verwendeten (key) Indizes. MySQL verwendet pro Tabelle in einer Query maximal einen Index und zwar den, mit der kleineren Treffermenge.
Im oben genannten Beispiel empfiehlt sich also möglicherweise die Anlage eines mehrspaltigen Indizes. Legt man das Sortierkrierium (in diesem Fall Strasse) noch an die letzte Stelle des Indizes, dann spart man sich zusätzlich noch den teuren Filesort da die Daten bereits sortiert im Index liegen.
Inhalt des nächsten und letzten Artikels dieser Serie ist das Thema “Überblick behalten”.

Bernd Erk
Bernd Erk
CEO

Bernd ist Geschäftsführer der NETWAYS Gruppe und verantwortet die Strategie und das Tagesgeschäft. Bei NETWAYS kümmert er sich eigentlich um alles, was andere nicht machen wollen oder können (meistens eher wollen). Darüber hinaus startete er früher das wöchentliche Lexware-Backup, welches er nun endlich automatisiert hat. So investiert er seine ganze Energie in den Rest der Truppe und versucht für kollektives Glück zu sorgen. In seiner Freizeit macht er mit sinnlosen Ideen seine Frau verrückt und verbündet sich dafür mit seinen beiden Söhnen und seiner Tochter.

0 Comments

Submit a Comment

Your email address will not be published. Required fields are marked *

More posts on the topic MySQL | Serien

Alle User in MySQL anzeigen

Oftmals wachsen Datenbankinstallationen im Laufe der Zeit und man legt immer wieder für neue Projekte neue Datenbanknutzer an. Um hier den Überblick zu behalten, zeige ich kurz, wie man sich die jeweiligen Nutzer anzeigen lassen kann. Voraussetzungen: Command...