Cours SQL et MySQL · Module 9: Index et normalisation

CREATE INDEX et UNIQUE INDEX

2 min de lecture
Dans cette leçon4

Maintenant que tu sais ce qu'est un index, il est temps de créer ton propre catalogue. C'est ce que fait la commande CREATE INDEX.

Créer un index

1CREATE INDEX idx_tytul ON ksiazki(tytul);

Nous le lisons ainsi : « Crée un catalogue nommé idx_tytul qui répertorie le rayon ksiazki selon la colonne tytul ». Désormais, la recherche par titre sera fulgurante. Par convention, nous commençons les noms d'index par idx_ pour les reconnaître facilement.

Un index unique

Parfois, nous voulons que les valeurs d'une colonne ne se répètent pas - par exemple, chaque lecteur doit avoir une adresse e-mail différente. Nous créons alors un UNIQUE INDEX :

1CREATE UNIQUE INDEX idx_email ON czytelnicy(email);

Un tel index fonctionne comme un catalogue ordinaire, mais il empêche en plus qu'une même adresse apparaisse deux fois. Toute tentative d'ajouter un second lecteur avec le même e-mail échouera avec une erreur.

Quand créer un index ?

Nous indexons souvent les colonnes utilisées pour :

  • le filtrage - dans WHERE (par exemple WHERE tytul = ...),
  • la jointure de tables - dans JOIN (par exemple autor_id),
  • le tri - dans ORDER BY.

Le coût des index

Un catalogue doit être mis à jour à chaque changement des parchemins. Il en va de même pour un index :

  • il ralentit les écritures (INSERT, UPDATE, DELETE),
  • il occupe un espace supplémentaire sur le disque.

C'est pourquoi nous n'indexons pas tout aveuglément - nous créons des catalogues seulement là où ils accéléreront vraiment le travail de la Bibliothèque.

Tu as repéré une erreur dans cette leçon ?

Teste tes connaissances

Réponds aux questions de cette leçon. Choisis une réponse pour voir tout de suite si elle est correcte.

  1. 1. Quelle commande crée correctement un index sur la colonne tytul de la table ksiazki ?

  2. 2. À quoi sert un UNIQUE INDEX ?

Voici 2 des 4 questions de cette leçon. Réponds aux autres dans le jeu.

Tâches pratiques dans le jeu

  • Clique dans l'ordre

    Clique sur les éléments dans l'ordre pour construire la commande qui crée un index :

  • Éditeur de code

    Crée un index nommé idx_tytul sur la colonne tytul de la table ksiazki, pour accélérer la recherche des livres par titre.

  • Éditeur de code

    Crée un index unique nommé idx_email sur la colonne email de la table czytelnicy, pour qu'aucune adresse ne puisse se répéter.

  • Tri horizontal

    Ordonne sur une ligne la commande correcte qui crée un index unique sur l'adresse email :

  • Éditeur de code

    Crée un index nommé idx_rok sur la colonne rok_wydania de la table ksiazki.

  • Tri horizontal

    Ordonne sur une ligne la commande correcte qui crée un index sur l'année de publication :