7.2.9 Index de colonne

Avec MySQL, tous les types de colonnes peuvent être indexés, à l'exception des types BLOB et TEXT. L'utilisation d'index est le meilleur moyen d'accélérer les performances des clauses SELECT.

Une table peut avoir jusqu'à 16 index. La taille maximale d'un index est de 256 bytes, et cette valeur peut être choisie à la compilation de MySQL.

Il n'est pas possible d'indexer une colonne qui contient des valeurs NULL, donc une colonne indexée doit être déclarée NOT NULL.

Pour les colonnes de type CHAR et VARCHAR, il est possible de préfixer la colonne. C'est un moyen beaucoup plus rapide et qui requiert moins d'espace disque qu'indexer une colonne complète. La syntaxe pour créer une telle colonne est la suivante :

KEY Nom_index(Nom_col(longueur))

L'exemple suivant créer un index pour les 10 premiers caractères de la colonne Nom_col.

mysql> CREATE TABLE test (
           nom  CHAR(200) NOT NULL,
           KEY Nom_index(nom(10)));