From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Maxim Boguk <maxim(dot)boguk(at)gmail(dot)com> |
Cc: | "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: Curious case of huge simple btree indexes bloat. |
Date: | 2015-05-31 17:18:21 |
Message-ID: | 2088.1433092701@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Maxim Boguk <maxim(dot)boguk(at)gmail(dot)com> writes:
> On the one of databases under my support I found very curious case of the
> almost endless index bloat (index size stabilises around 100x of the
> original size).
> The table have 5 indexes and they all have the same bloating behaviour
> (growth to almost 100x and stabilisation around that amount). An original
> index size 4-8Mb (after manual reindex), over time of the 5 days they all
> monotonically growth to 300-900MB. In the same time table size staying
> pretty constant at 30-50Mb (and amount of rows in the same don't vary
> widely and stays between 200k and 500k).
At least for the index you gave stats for, it seems like it's stabilizing
at one index entry per page. This is a known possible pathological
behavior if the application's usage involves heavy decimation of original
entries; say, you insert sequential timestamps and then later remove all
but every one-thousandth one, leaving at most one live entry on every
index page. Btree can recover the totally-empty leaf pages but it has no
provision for merging non-empty leaf pages, so those all stay as they are
indefinitely.
It would be pretty unusual for all the indexes on a table to be used like
that, though.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Francisco Olarte | 2015-05-31 17:42:46 | Re: How to retrieve Comment text using SQL, not psql? |
Previous Message | Arup Rakshit | 2015-05-31 15:57:12 | Postgresql 9.4 upgrade openSUSE13.1 |