pg.ddx.io  pgsql-performance@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: K C Lau <kclau60@netvigator.com>
To: George Essig <george.essig@gmail.com>
Cc: pgsql-performance@postgresql.org
Subject: Re: SELECT DISTINCT Performance Issue
Date: Wed, 08 Jun 2005 22:25:16 +0800
Message-ID: <6.2.1.2.0.20050608221510.02c4e368@localhost> (raw)
In-Reply-To: <6744b38505060806342e6a07d@mail.gmail.com>
References: <6.2.1.2.0.20050602190756.05ab2c70@localhost>
	<6744b38505060806342e6a07d@mail.gmail.com>

Both keys are text fields. Does it make any difference if PlayerID were 
integer?

BTW, I think the real performance problem is when we use SELECT ... ORDER 
BY PlayerID DESC, AtDate DESC LIMIT 1 in a VIEW. Please see my subsequent 
email http://archives.postgresql.org/pgsql-performance/2005-06/msg00110.php 
on this show-stopper problem for which I still have no clue how to get 
around. Suggestions are much appreciated.

Thanks and regards, KC.

At 21:34 05/06/08, George Essig wrote:
>On 6/2/05, K C Lau <KCLau@attglobal.net> wrote:
>...
> >
> > select DISTINCT ON (PlayerID) PlayerID,AtDate from Player  where
> > PlayerID='22220' order by PlayerID desc, AtDate desc;
> > The Player table has primary key (PlayerID, AtDate) representing data over
> > time and the query gets the latest data for a player.
> >
> >
>...
> > esdt=> explain analyze select DISTINCT ON (PlayerID) PlayerID,AtDate from
> > Player
> >   where PlayerID='22220' order by PlayerID desc, AtDate desc;
> >   Unique  (cost=0.00..2507.66 rows=1 width=23) (actual time=0.000..187.000
> > rows=1 loops=1)
> >     ->  Index Scan Backward using pk_player on player  (cost=0.00..2505.55
> > rows=8
> > 43 width=23) (actual time=0.000..187.000 rows=1227 loops=1)
> >           Index Cond: ((playerid)::text = '22220'::text)
> >   Total runtime: 187.000 ms
> >
>
>Is PlayerID an integer datatype or a text datatype.  It seems like
>PlayerID should be an integer data type, but postgres treats PlayerID
>as a text data type.  This is because the value '22220' is quoted in
>your query.  Also, the explain analyze output shows "Index Cond:
>((playerid)::text = '22220'::text".
>
>George Essig
>
>---------------------------(end of broadcast)---------------------------
>TIP 9: the planner will ignore your desire to choose an index scan if your
>       joining column's datatypes do not match




view thread (6+ messages)  latest in thread

Message-ID: <6.2.1.2.0.20050608221510.02c4e368@localhost>
Permalink:  ../6.2.1.2.0.20050608221510.02c4e368@localhost/
Also on:    postgresql.org/message-id/6.2.1.2.0.20050608221510.02c4e368@localhost

 · 

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: kclau60@netvigator.com, george.essig@gmail.com
  Subject: Re: SELECT DISTINCT Performance Issue
  In-Reply-To: <6.2.1.2.0.20050608221510.02c4e368@localhost>

* 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