Re: Planner doesn't take indexes into account

From: Grzegorz Olszewski <grzegorz(dot)olszewski(at)outlook(dot)com>
To: Shaun Thomas <sthomas(at)optionshouse(dot)com>, AI Rumman <rummandba(at)gmail(dot)com>
Cc: "pgsql-performance(at)postgresql(dot)org" <pgsql-performance(at)postgresql(dot)org>
Subject: Re: Planner doesn't take indexes into account
Date: 2014-05-28 21:03:22
Message-ID: DUB126-W644BD47B8A289277CCC38C91250@phx.gbl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

OK, thank you very much. I've tried similar query but with very few rows matching. In this case index was present in the plan.

BR,
Grzegorz Olszewski

> Date: Wed, 28 May 2014 08:31:38 -0500
> From: sthomas(at)optionshouse(dot)com
> To: grzegorz(dot)olszewski(at)outlook(dot)com; rummandba(at)gmail(dot)com
> CC: pgsql-performance(at)postgresql(dot)org
> Subject: Re: [PERFORM] Planner doesn't take indexes into account
>
> On 05/28/2014 04:59 AM, Grzegorz Olszewski wrote:
>
> > There is about 500,000 rows and about 500 new rows each business day.
> >
> > About 96% of rows meet given conditions, that is, count shoud be about
> > 480,000.
>
> Heikki is right on this. Indexes are not a magic secret sauce that are
> always used simply because they exist. Think of it like this...
>
> If the table really matches about 480,000 rows, by forcing it to use the
> index, it has to perform *at least* 480,000 random seeks. Even if you
> have a high-performance SSD array that can do 100,000 random reads per
> second, you will need about five seconds just to read the data.
>
> A sequence scan can perform that same operation in a fraction of a
> second because it's faster to read the entire table and filter out the
> *non* matching rows.
>
> Indexes are really only used, or useful, when the number of matches is
> much lower than the row count of the table. I highly recommend reading
> up on cardinality and selectivity before creating more indexes. This
> page in the documentation does a really good job:
>
> http://www.postgresql.org/docs/9.3/static/row-estimation-examples.html
>
> --
> Shaun Thomas
> OptionsHouse, LLC | 141 W. Jackson Blvd. | Suite 800 | Chicago IL, 60604
> 312-676-8870
> sthomas(at)optionshouse(dot)com
>
> ______________________________________________
>
> See http://www.peak6.com/email_disclaimer/ for terms and conditions related to this email
>
>
> --
> Sent via pgsql-performance mailing list (pgsql-performance(at)postgresql(dot)org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-performance

In response to

Browse pgsql-performance by date

  From Date Subject
Next Message Josh Berkus 2014-05-29 00:36:04 Re: NFS, file system cache and shared_buffers
Previous Message Shaun Thomas 2014-05-28 13:31:38 Re: Planner doesn't take indexes into account