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 MySQL die Tabellenstatistiken aktualisiert.
ANALYZE TABLE TABLENAME
Wenn man die Performance der gesetzten Indexe überprüfen will sollte man die Queries die man zum testen nimmt mit SELECT SQL_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 SQL_NO_CACHE ...
Hin und wieder kann es von Vorteil sein den MySQL 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 Optimierung vornehmen kann.
Folgende Artikel könnten auch interessieren
- Was sind temporäre Tabellen bei MySQL und wie konfiguriert man diese richtig?
- Performancesteigerung von MySQL durch Optimierung der Queries
- MySQL: NOT IN , NOT EXISTS oder LEFT JOIN mit IS NULL Abfrage?
- MySQL Performance Optimierung durch richtiges Konfigurieren
- MySQL Performance Optimierung
- MySQL Queries mit EXPLAIN auswerten und das Ergebnis richtig deuten
- MySQL Monitoring & Profiling
- Informationen über die Tabellen in der MySQL Datenbank
- Doppelte Einträge in MYSQL Tabelle löschen
- Der MySQL Query Cache und wie stelle ich diesen richtig ein?
- MySQL und der Datum/Zeit Vergleich
- MySQL Query Optimierung: Alle Einträge holen die doppelt vorhanden sind
- MySQL Queries – Tips und Tricks
- MySQL Performance Erfolge
- MySQL Performance Cheat Sheet
- MySQL Fachwissen
- Webseiten Caching Konzepte
- Pentaho Open Source Business-Intelligence-Software
- Optimierung des Festplattenzugriffes bei PHP Applikationen
- MySQL: Daten per Datei ein- und auslesen