Discussion:
Seq scan with a like operator
(too old to reply)
Peter Eisentraut
2004-07-23 14:54:33 UTC
Permalink
I don't understand why with a like operator, PostgreSQL 7.4.2 does not
LIKE requires a different kind of index. See
<http://www.postgresql.org/docs/7.4/static/indexes-opclass.html>.
--
Peter Eisentraut
http://developer.postgresql.org/~petere/

---------------------------(end of broadcast)---------------------------
TIP 2: you can get off all lists at once with the unregister command
(send "unregister YourEmailAddressHere" to ***@postgresql.org)
Jouneau Luc
2004-07-23 15:24:31 UTC
Permalink
Post by Peter Eisentraut
LIKE requires a different kind of index. See
<http://www.postgresql.org/docs/7.4/static/indexes-opclass.html>.
Thanks for the answer peter,

I didn't notice it when I red the doc, but if I create the index as
specified then it is the query with equal operator which use a seq scan.
Do I have to create 2 indexes on the same column (with different datatype)
in order to support different kind of queries ?
Well, It seems quite strange to me :
Suppose you have an user interface in which user can parameter his query on
4 varchar fields (independantly, i.e field 4 does not need to have field 1,2
or 3 filled), and you allow to use generic character such as '*' or '?'
(which will be translated into '%' and '_'). User can also fill in exact
values.
Then you would have to create 4*2=8 indexes to handle every combinations of
possible queries.

It would also mean that support both exact generic queries double the
indexing task on update/insert/delete.

Am I wrong ?

Luc Jouneau


---------------------------(end of broadcast)---------------------------
TIP 7: don't forget to increase your free space map settings
Peter Eisentraut
2004-07-23 16:00:07 UTC
Permalink
Post by Jouneau Luc
I didn't notice it when I red the doc, but if I create the index as
specified then it is the query with equal operator which use a seq scan.
Do I have to create 2 indexes on the same column (with different datatype)
in order to support different kind of queries ?
Yes.
Post by Jouneau Luc
Suppose you have an user interface in which user can parameter his query on
4 varchar fields (independantly, i.e field 4 does not need to have field
1,2 or 3 filled), and you allow to use generic character such as '*' or '?'
(which will be translated into '%' and '_'). User can also fill in exact
values.
I think that kind of interface would use the LIKE operator no matter whether
the user entered wildcards or not.
Post by Jouneau Luc
It would also mean that support both exact generic queries double the
indexing task on update/insert/delete.
Well, if you want to optimize lots of different queries, the system needs to
provide lots of different support.
--
Peter Eisentraut
http://developer.postgresql.org/~petere/

---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to ***@postgresql.org so that your
message can get through to the mailing list cleanly
Loading...