Création d’un index et optimisation de tables (index)
Création d'un index dans une table
Plus tard, nous serons amenés à rechercher des données dans une table. Pour une table qui contient 10 lignes, il n'y a pas de soucis mais pour une table contenant des millions de lignes, la base de données a besoin d'un petit coup de pouce.
Comme dans les livres, un index dans une base de données sert à optimiser la base de données de façon à ce que l'accès aux données soit le plus facile possible. Il s'agit d'indexer certaines colonnes afin de gagner en termes de rapidité.
Néanmoins, rien n'est jamais parfait. Si l'index nous permet de gagner du temps, il consomme de la mémoire. La notion d'index doit donc être employée avec modération et ne doit être utilisé que lorsque c'est nécessaire. Si l'on indexait systématiquement tous les champs, nous aurions l'effet inverse, la base de données serait moins rapide.
La clause CREATE nous permet de créer un INDEX. Il faut bien évidement préciser que l'objet créé est un index. Le prédicat UNIQUE permet de dire s'il y aura ou pas de doublons pour les valeurs de la colonne. On peut aussi ajouter les options ASC/DESC pour définir un ordre de classement des valeurs présentes dans la colonne.
Voici alors la syntaxe SQL de la création d'index :
CREATE [UNIQUE] INDEX Nom_index ON Nom_table (Nom_champ [ASC/DESC], ...)
Supprimer un index dans une table : DROP INDEX
Et la suppression d'un index se fait logiquement avec DROP et la syntaxe suivante :
DROP INDEX Nom_index