Bonjour, je viens de voir un post sur un problème de non utilisation d'un index.
Voici comment j'ai procédé :
-J'ai fais une table
A(int id,text monText,tsvector monVecteur);
- j'ai un index
1 2
| CREATE INDEX ndx_text
ON A using gin(monVecteur); |
- j'ai un trigger before insert
NEW.monVecteur:= to_tsvector(lower(NEW.monText));
Lorsque je fais ma requête, l'index n'est pas utilisé :
1 2 3
| explain analyze select id
from A
where monVecteur @@ to_tsquery(lower('mou')) |
Voici le résultat :
1 2 3 4
|
"Seq Scan on proprietaire_courant (cost=0.00..4979.84 rows=171 width=4) (actual time=178.913..178.913 rows=0 loops=1)"
" Filter: (ddenom_recherche @@ to_tsquery('mou'::text))"
"Total runtime: 178.945 ms" |
Pourtant, le tsvector est bien renseigné!
Quelqu'un peut-il me dire quoi faire? (Postgresql 9.0)
Partager