Expression Index
PostgreSQL 🟡 MidDéfinition
Index créé sur une expression ou une fonction plutôt que sur une colonne brute. Permet d'indexer des transformations comme LOWER(), des extractions de date ou des calculs.
Analogie
Un index de livre qui classe les titres sans accents ni majuscules pour une recherche simplifiée.
Exemple de code
CREATE INDEX idx_users_lower_email
ON users (LOWER(email));
-- La requete doit utiliser la meme expression
SELECT * FROM users
WHERE LOWER(email) = '[email protected]';
Cas d'usage
Optimiser les recherches case-insensitive ou les filtres sur des champs transformes.
Termes liés
En entretien
Explique-moi ce qu'est un index sur expression et pourquoi on en a besoin.
C'est un index créé sur une expression ou une fonction plutôt que sur une colonne brute, par exemple LOWER(email). Ça permet d'optimiser les recherches insensibles à la casse ou les filtres sur des champs transformés.
Quel piège courant fait qu'un tel index n'est pas utilisé par une requête ?
L'index n'est exploité que si la requête utilise exactement la même expression que celle indexée, ici WHERE LOWER(email) = .... Comparer directement la colonne brute empêche PostgreSQL d'utiliser cet index.
Dans l'actu
- 02/08 Prisma 8 permet de déclarer des index d'expression, partiels et uniques directement dans le Prisma Schema Language ou en TypeScript, et sait désormais lire les index existants ainsi que les politiques de row-level security de la base. Bilan août 2026 →
Fiche mise à jour le 2026-09-27