:: DEVELOPER ZONE
CREATE [UNIQUE|FULLTEXT] INDEX index_name ON tabelle (spalten_name[(laenge)],... )
Das CREATE INDEX-Statement macht vor MySQL-Version 3.22 nichts. Ab
Version 3.22 ist CREATE INDEX auf ein ALTER TABLE-Statement
gemappt, um Indexe zu erzeugen. See Abschnitt 7.5.4, „ALTER TABLE-Syntax“.
Normalerweise erzeugen Sie alle Indexe auf eine Tabelle zur Zeit, wo die
Tabelle selbst mit CREATE TABLE erzeugt wird.
See Abschnitt 7.5.3, „CREATE TABLE-Syntax“.
CREATE INDEX gestattet, bestehenden Tabellen
Indexe hinzuzufügen.
A Spaltenliste der Form (spalte1,spalte2,...) erzeugt einen
mehrspaltigen Index. Die Indexwerte werden durch Verkettung der Werte der
angegebenen Spalten erzeugt.
Bei CHAR- und VARCHAR-Spalten können Indexe, die nur einen
Teil einer Spalte benutzen, mit der spalten_name(laenge)-Syntax
erzeugt werden. (Bei BLOB- und TEXT-Spalten ist die
Längenangabe erforderlich.) Unten stehendes Statement zeigt, wie ein Index
erzeugt wird, der die ersten 10 Zeichen der name-Spalte benutzt:
mysql> CREATE INDEX teil_von_name ON kunde (name(10));
Weil sich die meisten Namen üblicherweise in den ersten 10 Zeichen
unterscheiden, sollte dieser Index nicht viel langsamer sein, als wenn der
Index aus der gesamten name-Spalte erzeugt worden wäre. Die
Benutzung von Teilspalten für Indexe kann die Index-Datei auch viel kleiner
machen, was viel Speicherplatz sparen und zusätzlich
INSERT-Operationen beschleunigen kann!
Beachten Sie, dass Sie einen Index auf eine Spalte, die NULL-Werte
haben darf, oder auf eine BLOB/TEXT-Spalte erst ab
MySQL-Version 3.23.2 und nur beim MyISAM-Tabellentyp erzeugen
können.
Weitere Informationen darüber, wie MySQL Indexe benutzt, finden Sie unter Abschnitt 6.4.3, „Wie MySQL Indexe benutzt“.
FULLTEXT-Indexe können nur VARCHAR- und TEXT-Spalten
indexieren und funktionieren nur bei MyISAM-Tabellen.
FULLTEXT-Indexe sind ab MySQL-Version 3.23.23 verfügbar.
Abschnitt 7.8, „MySQL-Volltextsuche“.
© 1995-2005 MySQL AB. All rights reserved.
