Article mis à jour le : 05-05-2022
Voici quelques explications sur les différents types d'index et la gestion des clefs primaires dans une base de données, et leur gestion avec MySQLUn index sur une table est un champ de référence, destiné a faciliter et à accéler une recherche dont le critère serait ce champ, et tout particulièrement dans le cas où la recherche impliquerait plusieurs tables.
Les index sont indispensables à la création de cléfs étrangères ou primaires.
Les index présentent un inconvénient, c'est qu'ils prennent de la place en mémoire et ralentissent un peu le fonctionnement de la base.
En plus des index simples, il existe trois autres types d'index :
Quelques exemples sous MySQL pour ajouter/supprimer des index, ici dans le cas de la modification d'une table. (Pour plus d'infos, voir la doc MySQL).
Avec un index simple :
ALTER TABLE MaTable
CREATE INDEX NomDeLindex (NomDuChamp)
Avec un index unique :
ALTER TABLE MaTable
ADD CONSTRAINT UNIQUE NomDeLindex (NomDuChamp)
Supprimer un index:
ALTER TABLE MaTable
DROP INDEX NomDeLindex
Une clef primaire sert à identifier de manière unique un enregistrement. Il s'agit d'une contrainte d'unicité (et ne peut pas être NULL), qui peut être composée d'une ou plusieurs colonnes.
En règle générale, par exemple pour les articles d'un blog, on utilisera pour clef primaire le champ Id, de type INT UNSIGNED, auto-incrémenté (donc dont la valeur est gérée par le SGBD).
Exemple :
ALTER TABLE MaTable
ADD CONSTRAINT NomDeLaContrainte UNIQUE NomDuChamp