Re: Why the planner does not use index for a large amount of data?

From: "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>
To: hmidi slim <hmidi(dot)slim2(at)gmail(dot)com>
Cc: "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org>, "pgsql-docs(at)postgresql(dot)org" <pgsql-docs(at)postgresql(dot)org>
Subject: Re: Why the planner does not use index for a large amount of data?
Date: 2017-12-06 14:52:09
Message-ID: CAKFQuwYJ8YrNH2Vde5nAu_N6hbsxzBE_qein0jXQyZ5kR=PHQQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-docs pgsql-general

On Wed, Dec 6, 2017 at 7:37 AM, hmidi slim <hmidi(dot)slim2(at)gmail(dot)com> wrote:

> Hi,
> When I used explain I found that the query planner use a seq scan to
> execute a query on a table containing about 2 millions rows.However I'm
> creating an index.Why does the planner uses seq scan in place of index
> scan?Does the execution of index scan is slower with table containing a
> huge amount of data?
>

​Please avoid posting to multiple lists at once.

An index doesn't contain visibility information so every record located in
the index must also be checked on the storage table to determine if it is
visible to the current transaction and thus is valid to be returned. If it
does need to be returned the table itself is also needed to get the rest of
the information. Thus the index scan itself involves additional
non-value-added (NVA) effort so far as the query is concerned. If a large
fraction (I've seen estimates of 10%) of the table is estimated to be
returned the additional cost involved with scanning the entire table will
less than the NVA cost of walking through the index and then fetching
records from the table anyway.

Also: "Fetching rows separately is much more expensive than reading them
sequentially."

https://www.postgresql.org/docs/10/static/using-explain.html#USING-EXPLAIN-BASICS

David J.

In response to

Browse pgsql-docs by date

  From Date Subject
Next Message Peter Eisentraut 2017-12-06 22:25:53 Re: njobs
Previous Message Melvin Davidson 2017-12-06 14:47:00 Re: Why the planner does not use index for a large amount of data?

Browse pgsql-general by date

  From Date Subject
Next Message Stephen Frost 2017-12-06 14:57:15 Re: a back up question
Previous Message Melvin Davidson 2017-12-06 14:47:00 Re: Why the planner does not use index for a large amount of data?