Hi,
das Leben ist kein Ponyhof und es gibt nicht für alle Dinge immer ein
Tutorial. Datenbanken und Indexierung ist a) Kenntnis des DBMS auf Basis Betriebshandbuch b) Erfahrung im Umgang damit
Ja, der Primärschlüssel eines Datensatz ist für gewöhnlich ein Index. Er identifiziert den Datensatz eindeutig.
Einen Index verwendest du bei einer Abfrage, in dem du ihn eigentlich gar nicht verwendest. Du legst ihn einmal für die Spalte an, wo er sinnvoll geeignet ist (hat ja Vincenzo bereits beschrieben). Das DBMS weiss dann bei der Erstellung des Ausführungsplans für die Abfrage (EXPLAIN / SHOW PLAN) ob es a) zum einen einen Index für die Spalten/Auswahl-Kriterien gibt und b) dieser auch einen Vorteil bei der Benutzung mit sich bringt. Das wird unter anderem aus Statistiken über Tabellen und deren Spalten gewonnen. Über zusammengesetzte Indizes und Reihenfolge von Suchargumenten will ich jetzt mal noch nichts schreiben, das führt zuweit.
Ein Index bedeutet auch Daten, die physikalisch irgendwo abgelegt werden müssen. Destomehr Indexe destomehr müssen diese verwaltet werden, dhzb: Aufsplitten, neu ordnen wenn ein neuer Schlüsselwert in den Index eingefügt wird usw. Das bedeutet zusätzlichen Aufwand für das DBMS.
Die optimale Länge/Breite/Grösse eines Index lässt sich nicht pauschal bestimmen, aber du solltest keine Blobs oder varchar(4000) Felder mit einem Index belegen ...
Wieviel Ahnung hast du bis jetzt von relationalen Datenbanken?
(Ich kann auch nicht gleich mit dem Driver schlagen wollen, wenn ich nicht schon mit einem Eisen einen vernünftigen 3/4 Schwung hinbekomme)
Cheers,
Frank