![]() ![]() |
|
![]() ![]() ![]() ![]() |
|
![]() |
![]() 7.2.10 Index multi-colonnes
MySQL peut créer des indexes sur plusieurs colonnes en même temps. Un index peut contenir jusqu'à 15 colonnes (Avec les colonnes de type Un index de plusieurs colonnes peut être considéré comme un tableau trié contenant les lignes obtenues en concaténant les valeurs des colonnes indexées.
MySQL gère les index sur plusieurs colonnes de manière à ce que les requêtes qui recherche une valeur connue dans la première colonne (avec une clause Par exemple, soit la table suivante : mysql> CREATE TABLE test ( id INT NOT NULL, nom CHAR(30) NOT NULL, prenom CHAR(30) NOT NULL, PRIMARY KEY (id), INDEX nom_complet (nom, prenom)); Ainsi, l'index nom_complet est un index sur les deux colonnes nom et prénom. L'index sera utilisé lors des requêtes qui recherchent un nom, ou un nom et un prénom. L'index sera donc utilisé lors des requêtes suivantes : mysql> SELECT * FROM test WHERE nom="Dupont"; mysql> SELECT * FROM test WHERE nom ="Dupont" AND prenom="Michel"; mysql> SELECT * FROM test WHERE nom ="Dupont" AND (prenom ="Michel" OR prenom ="Marie"); mysql> SELECT * FROM test WHERE nom ="Dupont" AND prenom >="M" AND prenom < "N"; Cependant, l'index ne sera pas utilisé lors des requêtes suivantes : mysql> SELECT * FROM test WHERE prenom ="Michel"; mysql> SELECT * FROM test WHERE nom="Dupont" OR prenom ="Michel"; |