Ich habe eine Tabelle, bei der ich gern einen Index hätte. Die
Tabelle ist schon prall gefüllt, also kann ich nicht einfach
mit create eine neue, bereits indiierte, erzeugen.
Bitte was?
ähm indiZierte sollte das heißen.
Ich wollte damit mein Erstaunen ausdrücken! 
Warum sollte man soetwas tun?
http://dev.mysql.com/doc/refman/5.0/en/create-index…
Also normalerweise einfach:
CREATE INDEX index_name ON tabelle (spalte);
Wird der Index dann automatisch aktualisiert? Oder muss ich
das immermal wiederholen?
Ja.
Nein.
Ein Index fragmentiert aber, wenn viele Datensätze geändert oder gelöscht werden.
D.h. der Index sollte bei starker Fragmentierung neu angelegt werden.
Ich weiss nicht, ob MySQL einen REBUILD eines Index unterstützt, aber ich vermute nicht. Also einfach alle paar Tage/Wochen löschen und neu anlegen, natürlich nur wenn die Performance auch wirklich in den Keller gegangen ist.
Auch die Statistiken einer Tabelle, also der „Plan“ des SQL Servers, welchen Index er in welchem Fall benutzen soll, sollte hin und wieder aktualisiert werden: http://dev.mysql.com/doc/refman/5.0/en/analyze-table…
Es kann nämlich nach einiger Zeit passieren, dass der entsprechende Index gar nicht mehr benutzt wird. Das bekommst Du natürlich auch direkt an der mangelnden Performance zu spüren.
Warum muss ich denn da einen Namen vergeben? Spielt der bei
der Abfrage eine Rolle?
Damit man den Index auch wieder ändern/löschen kann?
Nein.
Danke nochmal, hat mir schon sehr geholfen.
Bitte.
Grüße,
boog
P.S.: Kauf Dir mal ein Buch über SQL! 
z.B. http://www.amazon.de/gp/product/3897212684/