Alle MySQL-Datentypen lassen sich indizieren. Die Verwendung von
        Indizes der relevanten Spalten ist die beste Möglichkeit, die
        Leistung von SELECT-Operationen zu
        optimieren.
      
Die maximale Anzahl von Indizes pro Tabelle und die maximale Indexlänge werden durch die verwendete Speicher-Engine bestimmt. Siehe auch Kapitel 14, Speicher-Engines und Tabellentypen. Alle Speicher-Engines unterstützen mindestens 16 Indizes pro Tabelle und eine Indexgesamtlänge von mindestens 256 Byte. Bei den meisten Speicher-Engines liegen die Grenzen höher.
        Mit der Syntax
        col_name(N)N Zeichen einer
        String-Spalte verwendet. Wenn Sie auf diese Weise nur ein
        Präfix der Spaltenwerte indizieren, kann dies die Indexdatei
        erheblich kleiner machen. Bei der Indizierung einer
        BLOB- oder TEXT-Spalte
        müssen Sie eine Präfixlänge für den
        Index angeben. Zum Beispiel:
      
CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
        Präfixe können bis zu 1.000 Byte lang sein (767 Byte bei
        InnoDB-Tabellen). Beachten Sie, dass
        Präfixbeschränkungen in Byte angegeben werden, wohingegen die
        Präfixlänge in CREATE TABLE-Anweisungen als
        Anzahl der Zeichen interpretiert wird. Dies muss bei
        der Angabe einer Präfixlänge für eine Spalte, die einen
        Multibytezeichensatz verwendet, in jedem Fall berücksichtigt
        werden.
      
        Sie können außerdem FULLTEXT-Indizes
        erstellen. Diese werden für die Volltextsuche verwendet. Nur
        die MyISAM-Speicher-Engine unterstützt
        FULLTEXT-Indizes, und auch nur für
        CHAR-, VARCHAR- und
        TEXT-Spalten. Die Indizierung erfolgt stets
        über die gesamte Spalte – eine Teilindizierung
        (Spaltenpräfix) wird nicht unterstützt. Detaillierte
        Informationen finden Sie in Abschnitt 12.7, „MySQL-Volltextsuche“.
      
        Sie können auch Indizes für raumbezogene Typen erstellen.
        Derzeit unterstützt nur MyISAM
        R-Tree-Indizes für raumbezogene Typen. Andere Speicher-Engines
        verwenden B-Trees zur Indizierung raumbezogener Typen.
        (Ausnahmen sind lediglich ARCHIVE und
        NDBCLUSTER, die überhaupt keine raumbezogene
        Indizierung unterstützen.)
      
        Die MEMORY-Engine verwendet standardmäßig
        HASH-Indizes, unterstützt aber auch
        BTREE-Indizes.
      
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.

