Re: Perfomance of IN-clause with many elements and possible solutions

From: Dmitry Lazurkin <dilaz03(at)gmail(dot)com>
To: PT <wmoran(at)potentialtech(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: Perfomance of IN-clause with many elements and possible solutions
Date: 2017-07-24 10:17:56
Message-ID: a2931f79-2c5b-f35b-a790-4ae15e2139db@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On 07/24/2017 01:40 AM, PT wrote:
> In this example you count approximately 40,000,000 values, which is
> about 40% of the table.
4 000 000 (:

> If you really need these queries to be faster, I would suggest
> materializing the data, i.e. create a table like:
>
> CREATE TABLE id_counts (
> id BIGINT PRIMARY KEY,
> num BIGINT
> )
>
> Then use a trigger or similar technique to keep id_counts in sync
> with the id table. You can then run queries of the form:
>
> SELECT sum(num) FROM id_counts WHERE id IN :values:
>
> which I would wager houseboats will be significantly faster.
I use count only for example because it uses seqscan. I want optimize
IN-clause ;-).

Thanks.

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Dmitry Lazurkin 2017-07-24 10:18:51 Re: Perfomance of IN-clause with many elements and possible solutions
Previous Message Achilleas Mantzios 2017-07-24 07:18:18 Re: Dealing with ordered hierarchies