Re: Frequetly updated partial index leads to bloat on index for Postresql 11

From: Tom Dearman <tom(dot)dearman(at)gmail(dot)com>
To: Michael Lewis <mlewis(at)entrata(dot)com>
Cc: Peter Geoghegan <pg(at)bowt(dot)ie>, pgsql-general General <pgsql-general(at)postgresql(dot)org>
Subject: Re: Frequetly updated partial index leads to bloat on index for Postresql 11
Date: 2021-07-16 14:58:01
Message-ID: F84B8181-F681-407C-ABFF-894791C19B7C@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

We have change autovacuum so that it runs more frequently autovacuum_vacuum_scale_factor=0.035, the reason we have a partial index on the status is that in a table of 300 million entries, only about 100 or so would have status=‘IN_PROGRESS’ so we think this should be a nice small index and many of our queries want to look up with a where clause status=‘IN_PROGRESS’. In theory it works well, but we get a lot of index bloat as there is a lot of churn on the status value, ie each row starts as IN_PROGRESS and then goes to one of 4 possible completed statuses.

> On 16 Jul 2021, at 15:49, Michael Lewis <mlewis(at)entrata(dot)com> wrote:
>
> Have you tried setting autovacuum to run quite aggressively, perhaps just on this table? Have you tried an index on the status column only, rather than partial?

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Tom Lane 2021-07-16 15:43:35 Re: Frequetly updated partial index leads to bloat on index for Postresql 11
Previous Message Michael Lewis 2021-07-16 14:49:27 Re: Frequetly updated partial index leads to bloat on index for Postresql 11