Retour au cours

Introduction à l'Indexation (Accélérer les Requêtes)

Principes Fondamentaux des Bases de Données : De Zéro à Héros

Leçon 37 : Introduction à l'Indexation (Accélérer les Requêtes)

Les index sont cruciaux pour la performance des bases de données. Ils fonctionnent un peu comme l'index à la fin d'un livre, permettant au SGBD de localiser rapidement les données sans scanner chaque ligne.

Qu'est-ce qu'un Index ?

Un index est une structure de données séparée qui stocke les valeurs d'une ou plusieurs colonnes dans un ordre trié, ainsi que des pointeurs vers l'emplacement des enregistrements de données réels.

Index Clusterisé vs. Non Clusterisé

  1. Index Clusterisé (Clustered Index) : Définit l'ordre physique dans lequel les données sont stockées sur le disque. Une table ne peut avoir qu'un seul Index Clusterisé (souvent la Clé Primaire).
  2. Index Non Clusterisé (Non-Clustered Index) : Crée une liste triée séparée pointant vers l'emplacement physique des données. Une table peut avoir plusieurs Index Non Clusterisés.

Quand Créer un Index

Les index doivent être créés sur les colonnes qui sont :

  1. Fréquemment utilisées dans la clause WHERE (filtrage).
  2. Utilisées dans les conditions JOIN (liaison de tables).
  3. Utilisées dans les clauses ORDER BY (tri).

Syntaxe DDL

sql -- Création d'un index non clusterisé sur la colonne 'LastName' CREATE INDEX IX_Employee_LastName ON Employees (LastName);

Le Compromis

Bien que les index accélèrent la lecture des données (SELECT), ils ralentissent l'écriture des données (INSERT, UPDATE, DELETE). En effet, chaque fois que les données changent, l'index doit également être mis à jour. L'indexation doit être utilisée avec discernement.