From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Danny Shemesh <dany74q(at)gmail(dot)com> |
Cc: | Laurenz Albe <laurenz(dot)albe(at)cybertec(dot)at>, pgsql-general(at)postgresql(dot)org |
Subject: | Re: Index filter instead of index condition w/ IN / ANY queries above certain set size |
Date: | 2022-11-23 14:29:19 |
Message-ID: | 3695029.1669213759@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Danny Shemesh <dany74q(at)gmail(dot)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
From | Date | Subject | |
---|---|---|---|
Next Message | Ted Toth | 2022-11-23 15:31:27 | table inheritance partition and indexes |
Previous Message | Laurenz Albe | 2022-11-23 14:25:24 | Re: Getting PSQL in Windows to support TAB/Autocomplete via modified readline... |