Exercice 39 / 60

INDEX

ConsigneCrée un index nommé idx_ville sur la colonne ville de la table etudiants. Un index accélère les requêtes qui filtrent sur cette colonne (la leçon montre comment le vérifier avec EXPLAIN).

📖 Cours

Un index permet à PostgreSQL de sauter directement aux lignes voulues au lieu de parcourir toute la table, comme l'index d'un livre. Syntaxe : create index nom_index ON table(colonne);

Sans index PostgreSQL parcourt toute la table, avec index il saute droit aux lignes voulues, au prix d'écritures un peu plus lentes
Sans index PostgreSQL parcourt toute la table, avec index il saute droit aux lignes voulues, au prix d'écritures un peu plus lentes

Exemple (table produits) :

CREATE INDEX idx_categorie ON produits(categorie);EXPLAIN SELECT * FROM produits WHERE categorie = 'Reseau';

On indexe les colonnes souvent utilisées dans where, join et order BY. Trop d'index ralentit les écritures (insert/update).

Un index n'est pas utilisé à tous les coups : PostgreSQL compare les coûts et ne le prend que s'il y gagne. Sur une petite table, tout parcourir revient moins cher que le détour par l'index, et explain affiche alors un Seq Scan même quand l'index existe. La table etudiants ne fait que 25 lignes : explain select * from etudiants where id = 5 montre un Seq Scan alors que id porte déjà l'index de la clé primaire. Ton index idx_ville est donc bien créé, il ne servira que le jour où la table sera assez grosse.

Envie d'aller plus loin ? Découvrez nos formations certifiées Bac+2 à Bac+5 →