• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

SQL Index

mustang

Mitglied
Hallo Leute,

ich habe generell eine Frage zum Umgang mit einem Index bei SQL-Datenbanken.
Immer wieder stoße ich auf das Thema Index bei der Datenbankoptimierung. Grundlegende Informationen dazu habe ich bereits gefunden:
http://www.1keydata.com/de/sql/sql-create-index.php
Sprich, wie sie funktionieren und wie man entsprechende Spalten damit markiert.

Nun ist die Frage, wie man damit umgeht. Indiziert man einfach jede Spalte, die irgendwann mal in einer SQL-Abfrage vorkommt, oder nur ganz bestimmte? Denn theoretisch könnte ich ja einfach jede Spalte indizieren, bei der es möglich ist. Das erscheint mir aber etwas übertrieben.
Gibt es sonst Dinge, die man dabei beachten sollte?

edit: bemerkt man diese Veränderungen direkt und sind sie wirklich so gravierend?

Gruß mustang
und schon mal vielen Dank für eure Hilfe.
 
Zuletzt bearbeitet:
Werbung:
Zunächst kommt es auf das eingesetzte Datenbanksystem an. MySQL und Oracle z.B. unterscheiden sich an vielen Stellen. Ich gehe einfach mal davon aus, dass Du MySQL hast ;)

Ein Vorteil der Indizierung bei MySQL kommt dann zum Tragen, wenn man den Index auf eine Spalte setzt die in Bedingungen von SQL-Statements genutzt wird. Ich hatte neulich erst den Fall, dass ich bei einer Tabelle mit Primärschlüssel auf einer Integer-Spalte eine Verknüpfung mit einer anderen Tabelle über eine Varchar-Spalte herstellen musste. Das war führte zu einer langsamen Ausführung. Schneller wurde es als ich den Index auf die Varchar-Spalte setzte. Wirkte sich sofort aus. Ein Beispiel von vielen ;)

Tipp: schau dir mal EXPLAIN an, wenn Du die Performance von Statements untersuchen willst ;)
 
Werbung:
Auswirkungen:
Tabelle mit 120000 Zeilen die sich so angeleppert haben mit E-Mail-adressen, ohne Index 9sek und mehr, mit Index 0.5 sek pro abfrage.

Cheffchen
 
Zurück
Oben