MySQL Indexe richtig setzten

Die Goldenen Regeln

  • Als Richtwert gilt, wenn 20% oder weniger Zeilen durch eine Bedingung in der Abfrage  erfasst werden, ist der Einsatz eines Indexes sinnvoll.
  • Das setzen von Indexe auf Spalten mit vielen verschiedenen Werten (hohe Kardinalität) macht Sinn. Das setzen auf einer Spalte mit wenig unterschiedliche Werte bringt in der Regel nichts und ist daher sinnlos.

Einige Abfragen die bei der Arbeit mit Indexes nützlich sind

Zum anzeigen der aktuellen Indexes einer Tabelle kann die SHOW INDEX Statement benutzt werden. weitere Erklärungen: MySQL - Show Index

SHOW INDEX FROM tbl_name

Tipps

Wenn man mit dem erstellen der Indexe fertig ist sollte man einmal ANALYZE TABLE ausführen. Dies führt dazu, das die Tabellenstatistiken aktualisiert.

ANALYZE TABLE TABLENAME

Wenn man die der gesetzten Indexe überprüfen will sollte man die Queries die man zum testen nimmt mit SELECT _NO_CACHE ausführen. Dies sorgt dafür das der Query Cache nicht benutzt wird und die Ergebnisse realistischer sind weil die Geschwindigkeit dann nicht beeinflusst wird.

SELECT _NO_CACHE ...

Hin und wieder kann es von Vorteil sein den Query Optimierer zur Verwendung einer Verknüpfungreihenfolge zu zwingen. Und zwar zu der Reihenfolge so wie die Tabellen in der Query stehen. Dies erreicht man so:

SELECT STRAIGHT_JOIN ...




Die Unterschiedlichen Indexe

Typen

  • PRIMARY
  • UNIQUE
  • FULLTEXT
  • SPATIAL

Index Arten

  • BTREE
  • HASH - Der Query Optimizer bring hier keine Beschleunigung weil er keine ORDER BY vornehmen kann.

Folgende Artikel könnten auch interessieren

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *