Comment MySQL ajoute un index à un tableau existant

Comment MySQL ajoute un index à un tableau existant
Un index, autrement appelé indices, fait référence à une structure de données qui améliore les vitesses de récupération des données dans un tableau MySQL. Si une table n'a pas d'index, l'exécution d'une requête invite MySQL à scanner toutes les lignes jusqu'à ce qu'elle trouve les informations demandées. Si le tableau a de nombreux enregistrements, ce processus prendra beaucoup de temps à terminer, affectant considérablement les performances de la base de données.

Ce tutoriel vous montrera comment créer un index sur une table MySQL pour les tables existantes et nouvelles.

Avant de réaliser des requêtes et de créer des indices, regardons quelques concepts d'index MySQL.

Types d'indices MySQL

MySQL prend en charge deux types d'indices:

  1. Un index primaire ou en grappe
  2. Index secondaire

MySQL crée automatiquement un index, appelé primaire, chaque fois que nous créons une table avec une clé primaire. Selon le moteur de la base de données, si la clé principale ou la clé unique n'est pas disponible dans un tableau, MySQL peut créer une clé cachée sur la colonne avec des valeurs d'ID.

L'indice principal créé par MySQL est stocké avec les données du même tableau. Les autres indices qui existent dans un tableau en dehors de l'indice principal sont appelés indices secondaires.

Comment ajouter un index à un tableau existant

Bien que MySQL recommande d'ajouter un index pendant la création de table.

Pour ajouter un index à un tableau existant, nous pouvons utiliser la requête alter.

Prenons une exemple de base de données avec les tables comme indiqué dans la requête ci-dessous:

Créer une base de données s'il n'existe pas mysql_indices;
Utiliser mysql_indices;
Créer des randonnées de table (
id int Auto_increment Clé primaire,
cpt_name
Varchar (255) pas nul,
bateau
Varchar (255) pas nul
));
Insérer dans Treks (CPT_NAME, SHIP)
Valeurs («Carol Freeman», «USS Cerritos»),
('Christopher Pike', 'USS Discovery'),
('Jean-Luc Picard', 'USS Enterprise'),
('James T. Kirk ',' USS Enterprise '),
(«Jonathan Archer», «USS Enterprise»);

Dans l'exemple ci-dessus, MySQL créera une clé d'index à l'aide de la colonne ID car elle est spécifiée comme la clé principale.

Vous pouvez le vérifier à l'aide de la requête:

Afficher l'index de Treks;

Pour créer un index personnalisé, utilisez la requête alter comme:

Alter Table Treks Add Index (CPT_NAME);

Dans l'exemple ci-dessus, nous utilisons le CPT_NAME comme deuxième clé principale. Pour montrer les indices, utilisez la requête:

S'il n'est pas spécifié, MySQL sera par défaut n'importe quel index en tant que B-Tree. Les autres types d'index pris en charge incluent le hachage et le texte complet.

Le type d'index dépendra du moteur de stockage pour le tableau spécifié.

Pour créer un index pour une colonne ou une liste de colonnes, nous utilisons la requête Create Index. Par exemple, pour créer un index pour la colonne «Ship:, nous pouvons faire:

Créer index ship_index sur Treks (navire);

Si nous exécutons la requête d'index Show sur la table, nous devrions voir un index appelé "Ship_index" sur la colonne "Ship".

Comment ajouter un index à un nouveau tableau

Le moyen recommandé est de créer un index ou des indices lors de la création d'un tableau. Pour ce faire, spécifiez les colonnes à utiliser comme indices à l'intérieur de la requête index ().

Commençons par abandonner la table Treks dans l'exemple précédent:

Treks de table de dépôt;

Ensuite, recréons le tableau et spécifions l'index pendant la création. Un exemple de requête est:

Créer des randonnées de table (
id int Auto_increment Clé primaire,
cpt_name
Varchar (255) pas nul,
bateau
Varchar (255) pas nul,
Index (navire)
));
Insérer dans Treks (CPT_NAME, SHIP)
Valeurs («Carol Freeman», «USS Cerritos»),
('Christopher Pike', 'USS Discovery'),
('Jean-Luc Picard', 'USS Enterprise'),
('James T. Kirk ',' USS Enterprise '),
(«Jonathan Archer», «USS Enterprise»);

Dans l'exemple de requête ci-dessus, nous ajoutons la colonne du navire comme un index pendant la création de table. Puisque l'ID est la clé principale, MySQL l'ajoute automatiquement comme un index.

Afficher l'index de Treks;

Conclusion

Dans ce tutoriel, vous avez appris à ajouter un index à un tableau existant, à ajouter un index pour une colonne et à créer un index pendant la création de table.