Re: Lack of use of indexes

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

In response to

Responses

Browse pgsql-general by date

  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