From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Don Isgitt <djisgitt(at)soundenergy(dot)com> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: Lack of use of indexes |
Date: | 2002-11-22 16:53:05 |
Message-ID: | 25125.1037983985@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Don Isgitt <djisgitt(at)soundenergy(dot)com> writes:
> gds2=# select count(*) from lg;
> count
> --------
> 138459
> (1 row)
> gds2=# explain select * from lg where state='NM';
> NOTICE: QUERY PLAN:
> Seq Scan on lg (cost=0.00..5885.77 rows=14890 width=73)
An indexscan is usually a poor choice for retrieving 10% of the data in
a table (unless the index order and physical order are highly
correlated, as for instance after a CLUSTER command).
If you don't think the planner is guessing correctly here, you can force
an indexscan (do "set enable_seqscan = off") ... but I'll bet it gets
slower.
For randomly-ordered rows the cutoff point for indexscan effectiveness
is surprisingly low --- typically around 1% of the rows.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Dave [Hawk-Systems] | 2002-11-22 17:12:50 | caveats upgrading from 7.0.3 to 7.2.x |
Previous Message | Felipe Schnack | 2002-11-22 16:46:14 | Re: EXECUTE problems |