Index size increases after VACUUM FULL - Mailing list pgsql-hackers
From | Gurjeet Singh |
---|---|
Subject | Index size increases after VACUUM FULL |
Date | |
Msg-id | 65937bea0809300143n1492bc09hc410b7ef5eb8e42@mail.gmail.com Whole thread Raw |
Responses |
Re: Index size increases after VACUUM FULL
|
List | pgsql-hackers |
<div dir="ltr">Hi All,<br /><br /> I noticed something strange today, and thought I should report it. I vacuumed a database,and as expected, one of the table's size decreased (other table were VACUUMed individually earlier); but o my astonishment,the size of the UNIQUE KEY index on one of the columns increased. Here's the session log ( the table is: table_1,and the index is: <span style="font-family: courier new,monospace;">uk_table-1_url</span>):<br /><br /><span style="font-family:courier new,monospace;">postgres=> select relname, pg_size_pretty( pg_relation_size( oid ) ), pg_size_pretty(pg_total_relation_size( oid ) ) from pg_class where relnamespace = ( select oid from pg_namespace where nspname= 'web' ) order by pg_relation_size( oid ) desc;</span><br style="font-family: courier new,monospace;" /><span style="font-family:courier new,monospace;"> relname | pg_size_pretty | pg_size_pretty</span><br style="font-family:courier new,monospace;" /><span style="font-family: courier new,monospace;">-----------------------+----------------+----------------</span><brstyle="font-family: courier new,monospace;"/><span style="font-family: courier new,monospace;"> table_1 | 90 MB | 153 MB</span><brstyle="font-family: courier new,monospace;" /><span style="font-family: courier new,monospace;"> url | 67 MB | 101 MB</span><br style="font-family: courier new,monospace;" /><spanstyle="font-family: courier new,monospace;"> uk_table-1_url | 63 MB | 63 MB</span><br style="font-family:courier new,monospace;" /><span style="font-family: courier new,monospace;"> uk_url_url | 34MB | 34 MB</span><br style="font-family: courier new,monospace;" /><span style="font-family: courier new,monospace;"> link_prefix_pkey | 16 kB | 16 kB</span><br style="font-family: courier new,monospace;" /><spanstyle="font-family: courier new,monospace;"> random_url_seq | 8192 bytes | 8192 bytes</span><br style="font-family:courier new,monospace;" /><span style="font-family: courier new,monospace;"> link_prefix | 8192bytes | 32 kB</span><br style="font-family: courier new,monospace;" /><span style="font-family: courier new,monospace;">(7rows)</span><br style="font-family: courier new,monospace;" /><br style="font-family: courier new,monospace;"/><span style="font-family: courier new,monospace;">postgres=> vacuum full;</span><br style="font-family:courier new,monospace;" /><span style="font-family: courier new,monospace;">WARNING: skipping "pg_type"--- only table or database owner can vacuum it</span><br style="font-family: courier new,monospace;" /><span style="font-family:courier new,monospace;"><a lot of similar warnings></span><br style="font-family: courier new,monospace;"/><span style="font-family: courier new,monospace;">VACUUM</span><br style="font-family: courier new,monospace;"/><span style="font-family: courier new,monospace;">postgres=> select relname, pg_size_pretty( pg_relation_size(oid ) ), pg_size_pretty( pg_total_relation_size( oid ) ) from pg_class where relnamespace = ( select oidfrom pg_namespace where nspname = 'web' ) order by pg_relation_size( oid ) desc;</span><br style="font-family: couriernew,monospace;" /><span style="font-family: courier new,monospace;"> relname | pg_size_pretty | pg_size_pretty</span><brstyle="font-family: courier new,monospace;" /><span style="font-family: courier new,monospace;">-----------------------+----------------+----------------</span><brstyle="font-family: courier new,monospace;"/><span style="font-family: courier new,monospace;"> table_1 | 75 MB | 147 MB</span><brstyle="font-family: courier new,monospace;" /><span style="font-family: courier new,monospace;"> uk_table-1_url | 72 MB | 72 MB</span><br style="font-family: courier new,monospace;" /><spanstyle="font-family: courier new,monospace;"> url | 67 MB | 101 MB</span><br style="font-family:courier new,monospace;" /><span style="font-family: courier new,monospace;"> uk_url_url | 34MB | 34 MB</span><br style="font-family: courier new,monospace;" /><span style="font-family: courier new,monospace;"> link_prefix_pkey | 16 kB | 16 kB</span><br style="font-family: courier new,monospace;" /><spanstyle="font-family: courier new,monospace;"> random_url_seq | 8192 bytes | 8192 bytes</span><br style="font-family:courier new,monospace;" /><span style="font-family: courier new,monospace;"> link_prefix | 8192bytes | 32 kB</span><br style="font-family: courier new,monospace;" /><span style="font-family: courier new,monospace;">(7rows)</span><br style="font-family: courier new,monospace;" /><br style="font-family: courier new,monospace;"/><span style="font-family: courier new,monospace;">postgres=> </span><br clear="all" /><br /> Shouldwe treat this as expected behaviour, or do we dig deeper? There was absolutely no other activity on the database duringall this.<br /><br />Best regards,<br />-- <br />gurjeet[.singh]@EnterpriseDB.com<br />singh.gurjeet@{ gmail | hotmail| indiatimes | yahoo }.com<br /><br />EnterpriseDB <a href="http://www.enterprisedb.com">http://www.enterprisedb.com</a><br/><br />Mail sent from my BlackLaptop device<br /></div>
pgsql-hackers by date: