Routine Reindexing

PostgreSQL 7.3.4 Documentation
Prev | Chapter 8. Routine Database Maintenance Tasks | Next

# 8.3. Routine Reindexing

PostgreSQL is unable to reuse B-tree index pages in certain cases. The problem is that if indexed rows are deleted, those index pages can only be reused by rows with similar values. For example, if indexed rows are deleted and newly inserted/updated rows have much higher values, the new rows can't use the index space made available by the deleted rows. Instead, such new rows must be placed on new index pages. In such cases, disk space used by the index will grow indefinitely, even if `VACUUM` is run frequently.

As a solution, you can use the `REINDEX` command periodically to discard pages used by deleted rows. There is also `contrib/reindexdb` which can reindex an entire database.

Prev | Home | Next
Routine Vacuuming | Up | Log File Maintenance