Re: Number of characters in column preventing index usage

From: "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>
To: Hustler DBA <hustlerdba(at)gmail(dot)com>
Cc: "pgsql-performance(at)postgresql(dot)org" <pgsql-performance(at)postgresql(dot)org>
Subject: Re: Number of characters in column preventing index usage
Date: 2017-02-17 22:42:26
Message-ID: CAKFQuwZrKf52hNtc124zEVgNgQ7cG18yY2ynJJPLhTHpzarihg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

On Fri, Feb 17, 2017 at 3:19 PM, Hustler DBA <hustlerdba(at)gmail(dot)com> wrote:

>
> my_db=# create index tab_idx1 on tab(ID);
>
> CREATE INDEX
> my_db=# explain (analyze, buffers) select count(*) from tab where ID = '
> 01625cfa-2bf8-45cf' ;
> QUERY PLAN
>
> ------------------------------------------------------------
> ------------------------------------------------------------
> ---------------
> Aggregate (cost=8.29..8.30 rows=1 width=0) (actual time=0.048..0.048
> rows=1 loops=1)
> Buffers: shared read=2
> -> Index Only Scan using tab_idx1 on tab (cost=0.27..8.29 rows=1
> width=0) (actual time=0.043..0.043 rows=0 loops=1)
> Index Cond: (ID = '01625cfa-2bf8-45cf'::text)
>
>

> -> Seq Scan on tab (cost=0.00..14.79 rows=5 width=0) (actual
> time=0.031..0.108 rows=5 loops=1)
> Filter: ((ID)::text = '01625cfa-2bf8-45cf-bf4c-aa5f3c6fa8ea
> '::text)
> Rows Removed by Filter: 218
> Buffers: shared hit=12
> Planning time: 0.122 ms
> Execution time: 0.180 ms
> (8 rows)
>

​IIRC the only reason the first query cares to use the index is because it
can perform an Index Only Scan and thus avoid touching the heap at all. If
it cannot avoid touching the heap the planner is going to just use a
sequential scan to retrieve the records directly from the heap and save the
index lookup step.

David J.

In response to

Responses

Browse pgsql-performance by date

  From Date Subject
Next Message Tomas Vondra 2017-02-17 22:49:29 Re: Number of characters in column preventing index usage
Previous Message Hustler DBA 2017-02-17 22:19:00 Number of characters in column preventing index usage