7.26 CREATE INDEX

CREATE [UNIQUE] INDEX Nom_indexON Nom_table (Nom_col[(longueur]),... )

The CREATE INDEX n'est disponible qu'à partir de la version 3.22. CREATE INDEX est un raccourci de ALTER TABLE qui crée des index. ALTER TABLE

Généralement, il est possible de créer des tous les index d'une table au moment de la création de la table, avec CREATE TABLE. CREATE TABLECREATE INDEX permettra alors d'ajouter de nouveaux index.

Une liste de nom de colonne de format (col1,col2,...) créer un index de multiples colonnes. Les index sont formés en concaténant les différentes valeurs en une ligne.

Pour les valeurs de type CHAR et VARCHAR , les index peuvent ne prendre en compte qu'une partie de la colonne, en précisant Nom_col(longueur) . (Avec les types BLOB et TEXT, cette longueur est obligatoire. ). La commande suivante montre comment créer un index sur les 10 premiers caractères d'une colonne :

mysql> CREATE INDEX part_of_name ON customer (name(10));

Etant donné que la plus part des mots diffèrent les uns des autres dans les 10 premières lettres, l'index crée ne devrait pas être moins efficace que la colonne, tout en étant nettement plus rapide. Faire des index à valeur partiel permet de réduire la taille des index, et d'accélérer les opération de tris et d'insertion.

Il faut noter que l'on peut ajouter à un index une colonne qui accepte les types NULL, que depuis la version 3.23.2 de MySQL. De même pour les colonnes de type BLOB/TEXT. Cela impose l'utilisation du format de table MyISAM.