Optimizing MySQL: Queries and Indexes; Aber der ist halt in englisch. Da gab es noch einen guten, aber den finde ich leider gerade nicht.Zitat
Du kannst über mysql_query() einer Tabelle einen Index hinzufügen, allerdings solltest du das schon bei der Planung und Erstellung einer Tabelle machen.Zitat
Durch gute Indizes können Abfragen wesentlich beschleunigt werden.Zitat
Ok, hier bin ich mir nicht sicher, weil ich schon lange nicht mehr mit SQL gearbeitet hab. Ich glaube aber, dass die Kardinalität hier lediglich angibt, wie viele Einträge der Tabelle tatsächlich im Index vorhanden sind.Zitat
Einen Index hast du schon gesetzt, den Primärschlüssel, den du wahrscheinlich auf das ID-Feld angewendet hast. Über diesen Index verfügt fast jede Tabelle.Zitat
Du könntest auch noch weitere Indizes setzen, aber das hängt davon ab, welche Felder du am häufigsten abfragst.
Wenn du häufig die Vornamen anfragst, setze für dieses Feld einen Index und deine Abfragen beschleunigen sich.
Das ganze wird im oben genannten Artikel schön erklärt. Erstellst du für ein Feld einen Index wird intern eine geordnete Tabelle nur mit diesem Feld angelegt. Dadurch muss nicht mehr die ganze Tabelle, sondern nur noch ein Teilbereich dieser abgefragt werden.