From: | Dan Pelleg <daniel+pgsql(at)pelleg(dot)org> |
---|---|
To: | Scott Marlowe <smarlowe(at)qwest(dot)net> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: index not used? |
Date: | 2004-10-20 15:45:26 |
Message-ID: | 16758.34838.167915.510242@lark.auton.cs.cmu.edu |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Scott Marlowe writes:
> On Wed, 2004-10-20 at 08:06, Dan Pelleg wrote:
> > I'm trying to access a table with about 120M rows. It's a vertical version
> > of a table with 360 or so columns. The new columns are: original item col,
> > original item row, and the value.
> >
> > I created an index:
> >
> > CREATE INDEX idx on table (col, row)
> >
> > however, selects are still very slow. It seems it still needs a sequential
> > scan:
> >
> > EXPLAIN SELECT * FROM table WHERE col=1 AND row=10;
> > QUERY PLAN
> > ------------------------------------------------------------------------------
> > Seq Scan on table (cost=100000000.00..102612533.00 rows=1 width=14)
> > Filter: ((col = 1) AND ("row" = 10))
> >
> > What am I doing wrong?
>
> What type are row and col? If they're bigint (i.e. not int / int4) then
> you might need to quote the value to get the query to use an index:
>
> SELECT * FROM table WHERE col='1' AND row='10';
>
> also, have you vacuumed / analyzed the table? I'm assuming yes.
They're not bigints:
CREATE TABLE table (col int2, row integer, val double precision)
Yes, I vacuumed and analyzed, right after creating the index. Should I try
and issue a few queries beforehand?
--Dan
From | Date | Subject | |
---|---|---|---|
Next Message | Aaron Mulder | 2004-10-20 15:47:12 | Free PostgreSQL Training, Philadelphia, Oct 30 |
Previous Message | Scott Marlowe | 2004-10-20 15:44:06 | Re: index not used? |