Covering Index (INCLUDE)

PostgreSQL 🔴 Senior

Définition

Index qui inclut des colonnes supplémentaires non-clé via INCLUDE. Permet un Index-Only Scan en fournissant toutes les colonnes nécessaires sans accéder a la table.

Analogie

Un sommaire de livre qui inclut un résume de chaque chapitre : pas besoin de tourner les pages.

Exemple de code

CREATE INDEX idx_orders_covering
  ON orders (user_id)
  INCLUDE (total, status);

Cas d'usage

Éliminer les accès table pour les requêtes fréquentes qui ne lisent que quelques colonnes.

#sgbd#interview#database#postgresql

En entretien

  1. Explique-moi ce qu'est un covering index avec INCLUDE.

    C'est un index qui inclut des colonnes supplémentaires non-clé via INCLUDE, comme un sommaire de livre qui inclut un résumé de chaque chapitre. Ça permet un Index-Only Scan en fournissant toutes les colonnes nécessaires sans accéder à la table.

  2. Dans quel cas ça vaut le coup d'en créer un ?

    Quand des requêtes fréquentes ne lisent que quelques colonnes en plus de la clé indexée, un covering index élimine complètement les accès à la table. Ça évite l'aller-retour supplémentaire vers la table pour ces colonnes.

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre