Comme un index dans un livre, un index MySQL vous permet de trouver des données plus efficacement. L'indice contient seulement les champs que vous êtes intéressé par le tri sur , plutôt que l'ensemble du dossier . Tous les types de données peuvent être des indices et il peut y avoir jusqu'à 16 index par table . Les index peuvent être créés sur un préfixe de la colonne ( les premiers caractères de chaque enregistrement ) , toute la colonne ou de plusieurs colonnes . Vous pouvez même créer un index de texte intégral. CREATE INDEX syntaxe
indices sont généralement créés quand une table est créée avec l' instruction CREATE TABLE :
CREATE TABLE exemple ( empid RC (10), FNAME VARCHAR ( 20) , lname VARCHAR ( 20) , INDEX ( empid ) ) ;
Cependant, vous pouvez créer des index sur les tables après les tables sont créées avec cette déclaration:
CREATE INDEX ON EmployeeId exemple ( empid ) ;
types d'index
index de préfixe
sont créés en utilisant uniquement la partie avant ( préfixe ) de la valeur de la colonne. Par exemple, si vous indexé sur un nom , vous pouvez créer un index unique sur les cinq premiers caractères du nom. Les colonnes qui utilisent le "char" , " varchar ", " binaire", " varbinary ", " blob " et les types de données "texte" peuvent tous être indexés avec des préfixes . La taille du préfixe est donnée en caractères pour les types et les octets de données de chaîne pour les types de données binaires . La taille est indiquée directement après le nom de la colonne dans l'instruction CREATE TABLE et CREATE INDEX. Par exemple: .
CREATE INDEX ON nom_famille exemple ( FNAME (5) ) ;
La désignation (5) est la longueur du préfixe en caractères
préfixes de colonnes font le fichier d'index plus petit qui économise de l'espace disque et peut éventuellement accélérer déclarations " INSERT " , étant donné que ces déclarations doivent mettre à jour l'index ainsi que la table.
un index unique crée un index où toutes les valeurs de l'indice sont distinctes l'une de l'autre. Si vous ajoutez une nouvelle valeur de l'indice qui correspond à une valeur existante , une erreur se produit . La seule exception à cette règle est la valeur NULL. Il peut y avoir plusieurs valeurs NULL dans un index unique. Indices de préfixe peut également être unique. La syntaxe pour créer un index unique est :
CREATE UNIQUE INDEX ON nom_famille exemple ( FNAME (5) ) ;
index en texte intégral sont créés sur toute la colonne . Les préfixes ne sont pas autorisés pour les index en texte intégral. La colonne doit être créé avec le char, varchar et les types de données texte . La syntaxe pour créer un index de texte intégral est:
créer le plein description index de texte sur l'exemple ( description ) ;
Utilisation des index
sans index , MySQL va commencer au premier enregistrement de la table, et de lire toute la table pour trouver tous les documents pertinents . Si la table dispose d'un index , MySQL peut trouver la position des données dans le milieu du fichier de données
index sont utilisés lorsqu'une instruction a une clause WHERE, tels que: .
SELECT EmpID de l'exemple OÙ lname = 'Smith' ;
S'il ya plusieurs indices à choisir MySQL va utiliser l'index qui renvoie le moins de lignes. Ceci élimine les lignes de compte lors d'une requête .
Requêtes de jointure
peut utiliser des index pour trouver rapidement des lignes dans plusieurs tables. Cependant, ils ne sont utiles que si les valeurs sont les mêmes ou similaires types de données.
Indices sont également utilisés pour trouver les valeurs dans une colonne d'index MIN () ou MAX () et de trier ou de groupe d'une table .