Page 1 sur 1
Problème d'index partiel sur PostgreSQL : erreur 'WHERE condition not used in index'
Publié : jeu. mars 20, 2025 12:49 am
par la_scriptkid
Help ! Je crée un index partiel avec CREATE INDEX idx_actif ON clients(email) WHERE statut='actif' mais le planner ne l'utilise jamais. EXPLAIN montre un seq scan... Version PostgreSQL 14.7.
Re: Problème d'index partiel sur PostgreSQL : erreur 'WHERE condition not used in index'
Publié : jeu. mars 20, 2025 1:49 am
par antoine06
As-tu bien analysé la table après création de l'index ? Il faut faire un ANALYZE pour que les stats soient à jour.
Re: Problème d'index partiel sur PostgreSQL : erreur 'WHERE condition not used in index'
Publié : jeu. mars 20, 2025 3:49 am
par la_scriptkid
Oui, fait, et même un VACUUM ANALYZE. Le problème persiste. J'ai seulement 500K lignes, dont 10% de 'actif'.
Re: Problème d'index partiel sur PostgreSQL : erreur 'WHERE condition not used in index'
Publié : jeu. mars 20, 2025 6:49 am
par antoine1974
C'est probablement un seuil de cost estimation. Essaye de forcer avec SET enable_seqscan=OFF pour tester. Et vérifie que ta condition WHERE est EXACTEMENT la même que dans l'index (sensible à la casse !).
Re: Problème d'index partiel sur PostgreSQL : erreur 'WHERE condition not used in index'
Publié : jeu. mars 20, 2025 7:49 am
par la_scriptkid
BINGO ! J'avais un WHERE STATUT='actif' dans ma requête alors que l'index était sur statut='actif'. PostgreSQL est case-sensitive sur les noms de colonnes dans ce cas. Merci !