Search Postgresql Archives

Re: Index filter instead of index condition w/ IN / ANY queries above certain set size

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Danny Shemesh <dany74q@xxxxxxxxx> 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





[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]

  Powered by Linux