Re: Index filter instead of index condition w/ IN / ANY queries above certain set size - Mailing list pgsql-general

From Tom Lane
Subject Re: Index filter instead of index condition w/ IN / ANY queries above certain set size
Date
Msg-id 3695029.1669213759@sss.pgh.pa.us
Whole thread Raw
In response to Re: Index filter instead of index condition w/ IN / ANY queries above certain set size  (Danny Shemesh <dany74q@gmail.com>)
Responses Re: Index filter instead of index condition w/ IN / ANY queries above certain set size  (Danny Shemesh <dany74q@gmail.com>)
List pgsql-general
Danny Shemesh <dany74q@gmail.com> writes:
>                                         ->  Index Only Scan using
> idx_hashes on refs  (cost=0.56..722735.47 rows=33715 width=16) (actual
> time=1727.208..1727.208 rows=1 loops=1)
>                                               Index Cond: (tid =
> '13371337-1337-1337-1337-133713371337'::uuid)
> *                                              Filter: (tidh = ANY
> ('{13391339-1339-1339-1339-133913391339}'::uuid[]))    <<<<<<<<<<<<<<<-
> Note this line*                                              Rows Removed
> by Filter: 109087
>                                               Heap Fetches: 16976
>                                               Buffers: shared hit=13051
> read=14561
>                                               I/O Timings: read=53405.294

This doesn't match up terribly well with the table definition
you showed before, but I wonder whether tidh is a low-order
index column.  If you need to optimize this specific shape
of query you need to pay attention to the index column order, per

https://www.postgresql.org/docs/current/indexes-multicolumn.html

That is, tid and tidh need to be the first two index columns.

            regards, tom lane



pgsql-general by date:

Previous
From: Laurenz Albe
Date:
Subject: Re: Getting PSQL in Windows to support TAB/Autocomplete via modified readline...
Next
From: Ted Toth
Date:
Subject: table inheritance partition and indexes