pg.ddx.io  pgsql-performance@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: mark <markkicks@gmail.com>
To: Justin <justin@emproshunts.com>
Cc: pgsql-general@postgresql.org
Cc: pgsql-performance@postgresql.org
Subject: Re: select query takes 13 seconds to run with index
Date: Mon, 26 May 2008 16:32:50 -0700
Message-ID: <82fa9e310805261632y46f306fdh84e2da62ffbd7873@mail.gmail.com> (raw)
In-Reply-To: <483B4729.7050402@emproshunts.com>
References: <82fa9e310805261549m2362fbe8sbf18789938fee833@mail.gmail.com>
	<483B4729.7050402@emproshunts.com>

On Mon, May 26, 2008 at 4:26 PM, Justin <justin@emproshunts.com> wrote:
> mark wrote:
>> Hi, is there anyway this can be made faster?  id is the primary key,
>> and there is an index on uid..
>> thanks
>> EXPLAIN ANALYZE select * from pokes where uid = 578439028 order by id
>> DESC limit 6;
>>                                                                     QUERY
>> PLAN
>>
>> ----------------------------------------------------------------------------------------------------------------------------------------------------
>>  Limit  (cost=0.00..9329.02 rows=6 width=135) (actual
>> time=13612.247..13612.247 rows=0 loops=1)
>>   ->  Index Scan Backward using pokes_pkey on pokes
>> (cost=0.00..5182270.69 rows=3333 width=135) (actual
>> time=13612.245..13612.245 rows=0 loops=1)
>>         Filter: (uid = 578439028)
>>  Total runtime: 13612.369 ms
>> (4 rows)
> First this should be posted on performance list.
sorry about this.

> how many records are in this table?
22334262, 22 million records.

> The estimate is way off, when was the last time Vaccum was on the table?
about a week ago i ran this VACUUM VERBOSE ANALYZE;
this table is never updated or deleted, rows are just inserted...


> What verison of Postgresql are you running
8.3.1

> Size of the Table
22 million rows approximately

> Table layout
CREATE TABLE pokes
(
  id serial NOT NULL,
  uid integer,
  action_id integer,
  created timestamp without time zone DEFAULT now(),
  friend_id integer,
  message text,
  pic text,
  "name" text,
  CONSTRAINT pokes_pkey PRIMARY KEY (id)
)
WITH (OIDS=FALSE);
ALTER TABLE pokes OWNER TO postgres;

-- Index: idx_action_idx

-- DROP INDEX idx_action_idx;

CREATE INDEX idx_action_idx
  ON pokes
  USING btree
  (action_id);

-- Index: idx_friend_id

-- DROP INDEX idx_friend_id;

CREATE INDEX idx_friend_id
  ON pokes
  USING btree
  (friend_id);

-- Index: idx_pokes_uid

-- DROP INDEX idx_pokes_uid;

CREATE INDEX idx_pokes_uid
  ON pokes
  USING btree
  (uid);


> Load on the database
how do i measure load on database?



view thread (16+ messages)  latest in thread

Message-ID: <82fa9e310805261632y46f306fdh84e2da62ffbd7873@mail.gmail.com>
Permalink:  ../82fa9e310805261632y46f306fdh84e2da62ffbd7873@mail.gmail.com/
Also on:    postgresql.org/message-id/82fa9e310805261632y46f306fdh84e2da62ffbd7873@mail.gmail.com

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-performance@postgresql.org
  Cc: markkicks@gmail.com, justin@emproshunts.com, pgsql-general@postgresql.org
  Subject: Re: select query takes 13 seconds to run with index
  In-Reply-To: <82fa9e310805261632y46f306fdh84e2da62ffbd7873@mail.gmail.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox