Re: Frequetly updated partial index leads to bloat on index for Postresql 11 - Mailing list pgsql-general

From Tom Dearman
Subject Re: Frequetly updated partial index leads to bloat on index for Postresql 11
Date
Msg-id F84B8181-F681-407C-ABFF-894791C19B7C@gmail.com
Whole thread Raw
In response to Frequetly updated partial index leads to bloat on index for Postresql 11  (Tom Dearman <tom.dearman@gmail.com>)
Responses Re: Frequetly updated partial index leads to bloat on index for Postresql 11  (Tom Lane <tgl@sss.pgh.pa.us>)
List 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@entrata.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?

pgsql-general by date:

Previous
From: Michael Lewis
Date:
Subject: Re: Frequetly updated partial index leads to bloat on index for Postresql 11
Next
From: Tom Lane
Date:
Subject: Re: Frequetly updated partial index leads to bloat on index for Postresql 11