-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Wed, 12 Dec 2007 14:25:16 -0800 "Medi Montaseri" <montaseri@xxxxxxxxx> wrote: > Hi, > > I know this is not exactly admin related, but ... it is simple enough > to be even fun > > From a performance point of view, is it better to use OR as in > SELECT expr FROM expr WHERE col=this OR col=that OR col=theOther > Or to use a range of values as in > SELECT expr FROM expr WHERE col in ( val1, val2, ...., valn) > > I think the IN range yields a better query plan .... what do you > think ? Thanks Well a simple test: postgres=# explain analyze select * from tellers where bid in ('1','2'); QUERY PLAN - ------------------------------------------------------------------------------------------------------ Seq Scan on tellers (cost=0.00..10.25 rows=20 width=352) (actual time=0.019..0.192 rows=20 loops=1) Filter: (bid = ANY ('{1,2}'::integer[])) Total runtime: 0.314 ms (3 rows) postgres=# explain analyze select * from tellers where bid = '1' or bid = '2'; QUERY PLAN - ------------------------------------------------------------------------------------------------------ Seq Scan on tellers (cost=0.00..11.50 rows=20 width=352) (actual time=0.018..0.199 rows=20 loops=1) Filter: ((bid = 1) OR (bid = 2)) Total runtime: 0.275 ms (3 rows) postgres=# > Medi - -- The PostgreSQL Company: Since 1997, http://www.commandprompt.com/ Sales/Support: +1.503.667.4564 24x7/Emergency: +1.800.492.2240 Donate to the PostgreSQL Project: http://www.postgresql.org/about/donate SELECT 'Training', 'Consulting' FROM vendor WHERE name = 'CMD' -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) iD8DBQFHYGJwATb/zqfZUUQRAs32AJ9HuJVcY5gcr0hboxkI6PcRtv++JwCfXd00 nQ7Frkof0mVwqNYVxQ9Vziw= =XzJi -----END PGP SIGNATURE----- ---------------------------(end of broadcast)---------------------------TIP 3: Have you checked our extensive FAQ? http://www.postgresql.org/docs/faq