From: | REISS Thomas DSIC BIP <thomas(dot)reiss(at)interieur(dot)gouv(dot)fr> |
---|---|
To: | Stephane Bortzmeyer <bortzmeyer(at)nic(dot)fr> |
Cc: | Guillaume Lelarge <guillaume(at)lelarge(dot)info>, pgsql-fr-generale(at)postgresql(dot)org |
Subject: | Re: Re: Index pour requêtes de non-existence en PostgreSQL |
Date: | 2010-05-20 12:18:20 |
Message-ID: | 4BF5288C.1050609@interieur.gouv.fr |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-fr-generale |
Bonjour,
-------- Message original --------
Sujet : [pgsql-fr-generale] Re: Index pour requêtes de non-existence en
PostgreSQL
De : Stephane Bortzmeyer <bortzmeyer(at)nic(dot)fr>
Pour : Guillaume Lelarge <guillaume(at)lelarge(dot)info>
Copie à : pgsql-fr-generale(at)postgresql(dot)org
Date : 20/05/2010 11:02
> Oui, avec cela, ça marche, merci. Par contre, l'utilisation de ce
> second index semble dépendre de si la requête a un joker % au début ou
> à la fin :
>
>
> essais=> EXPLAIN SELECT person FROM PhonesPersons WHERE phone LIKE '+34%';
> QUERY PLAN
> ----------------------------------------------------------------------------
> Bitmap Heap Scan on phonespersons (cost=6.06..569.94 rows=163 width=4)
> Filter: (phone ~~ '+34%'::text)
> -> Bitmap Index Scan on phone2_idx (cost=0.00..6.02 rows=163 width=0)
> Index Cond: ((phone ~>=~ '+34'::text) AND (phone ~<~ '+35'::text))
> (4 rows)
>
> essais=> EXPLAIN SELECT person FROM PhonesPersons WHERE phone LIKE '%6556676';
> QUERY PLAN
> ------------------------------------------------------------------
> Seq Scan on phonespersons (cost=0.00..18064.00 rows=13 width=4)
> Filter: (phone ~~ '%6556676'::text)
> (2 rows)
>
Cela a toujours été et tous les SGBDs à ma connaissance. Toutes les
recherches avec un joker % au début passe par une lecture séquentielle
de la table.
Oracle avait introduit un jour les index "reverse", mais c'est une
fonctionnalité mal documentée. Dans le genre, j'avais écrit ça fut un
temps: http://blog.postgresql.fr/index.php?post/drupal/396 qui a été
suivi par ça: http://blog.postgresql.fr/index.php?post/drupal/393
A+
Thomas
From | Date | Subject | |
---|---|---|---|
Next Message | Dimitri Fontaine | 2010-05-20 12:26:36 | Re: Re: Index pour requêtes de non-existence en PostgreSQL |
Previous Message | Guillaume Lelarge | 2010-05-20 09:28:44 | Re: Re: Index pour requêtes de non-existence en PostgreSQL |