gmu hat geschrieben:@Schubi: Ein Index ist nicht nur für Dubletten.
Den Index braucht man schon um beschleunigt Datensätze zu finden, oder wie in dem SELECT-Statement die zugehörigen verknüpften
Datensätze, die ja über Schlüsselfelder verknüpft (relational) sind.
Schon klar.
"Dubletten" war ein Versuch das möglichst einfach auszudrücken.
Ich meine damit, dass es nur Sinn macht, wenn in Tabellen ohnehin eindeutige Daten stehen (also keine doppelten Einträge), dann muss das RDBMS so oder so voll sequeziell durch, da hilft auch kein Index. Ansonsten würde jedes Datenbank System von Haus aus alles durch"indexen", wenn viel immer viel helfen würde.
Weitere Indexe (außer Primary, Foreign und den Unique Keys) zu platzieren muss schon etwas geplant werden.
Ich höre viel zu oft: "Datenbank langsam, mach'n Index drauf"... so einfach ist das nicht, da schreiben mache sogar Doktorarbeiten drüber.
Aber in der Regel kommt man mit dem oben erwähnten EXPLAIN SELECT... sehr schnell dahinter, ob der gesetzte Index sinnvoll ist.
Falls nicht, wieder ab in die Tonne damit, ist ja kein Problem.
Siehe z.B auch
http://phpperformance.de/indizes-richtig-einsetzen/#p8