Cours SQL et MySQL · Module 9: Index et normalisation

Index composites et suppression d'index

2 min de lecture
Dans cette leçon4

Tu connais déjà les catalogues à une seule colonne. Je vais maintenant t'apprendre à construire des catalogues multi-colonnes et à ranger ceux qui ne servent plus la Bibliothèque.

Un index composite (multi-colonnes)

Parfois, nous cherchons dans les rayons selon deux champs à la fois - par exemple, nous cherchons les livres d'un auteur précis dans une catégorie donnée. Nous créons alors un index composite - un seul catalogue répertoriant les parchemins selon plusieurs colonnes :

1CREATE INDEX idx_autor_kat ON ksiazki(autor_id, kategoria_id);

Un tel index accélère une requête qui filtre sur les deux colonnes en même temps.

L'ordre des colonnes compte

Dans un index composite, l'ordre des colonnes n'est pas arbitraire. Le catalogue est trié d'abord selon la première colonne, puis - à l'intérieur de celle-ci - selon la seconde. Cela fonctionne le mieux quand tu filtres par la première colonne (ou par la première et la seconde ensemble).

L'index (autor_id, kategoria_id) aide à merveille quand tu connais autor_id. Si tu filtres uniquement par kategoria_id - ce catalogue précis n'aide guère. C'est comme un catalogue classé d'abord par auteur : tu trouves l'auteur rapidement, mais tu ne peux pas y chercher directement la catégorie.

Supprimer un index

Un catalogue redondant est un fardeau - il ralentit les écritures et occupe de l'espace. Quand un index n'est plus nécessaire, nous le supprimons avec la commande DROP INDEX :

1DROP INDEX idx_tytul ON ksiazki;

Nous le lisons ainsi : « Supprime le catalogue idx_tytul du rayon ksiazki ». Le rayon lui-même et ses parchemins restent intacts - seul disparaît le registre qui les ordonnait.

Quand ranger les catalogues

  • Un index jamais utilisé dans les requêtes est un coût pur - supprime-le.
  • Après avoir changé ta façon de chercher, les anciens index sont souvent redondants.
  • Un bon scribe relit les catalogues de temps à autre et retire ceux qui sont morts - tout comme on range les rayons.

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. Qu'est-ce qu'un index composite (sur plusieurs colonnes) ?

  2. 2. Pourquoi l'ordre des colonnes dans un index composite est-il important ?

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

Tâches pratiques dans le jeu

  • Éditeur de code

    Crée un index composite nommé idx_autor_kat sur les colonnes autor_id et kategoria_id de la table ksiazki.

  • Éditeur de code

    Supprime l'index nommé idx_rok de la table ksiazki. Utilise DROP INDEX.

  • Tri horizontal

    Ordonne sur une ligne la commande correcte qui supprime un index :