Re: SELECT * FROM t where p or q;

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: frbn(at)efbs-seafrigo(dot)fr
Cc: pgsql-sql(at)postgresql(dot)org
Subject: Re: SELECT * FROM t where p or q;
Date: 2001-11-20 15:40:33
Message-ID: 29635.1006270833@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

frbn(at)efbs-seafrigo(dot)fr writes:
> on a +10 millions rec table, a simple select:
> SELECT * FROM tab where num = x;
> time: 5 secondes

> SELECT * FROM tab WHERE num = x OR num = y;
> time: more than 10 mn !!!

What does EXPLAIN show? Have you VACUUM ANALYZEd the table recently
(or indeed ever)? This looks a lot like the behavior on a
never-vacuumed table --- the default statistical assumptions are such
that an indexscan looks like a win for one equality clause, but not
for two ORed clauses.

regards, tom lane

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message frbn 2001-11-20 17:42:05 Re: SELECT * FROM t where p or q;
Previous Message Bruce Momjian 2001-11-20 15:33:08 Re: Genetic algorithms