May 2018
Intermediate to advanced
576 pages
30h 25m
English
If you are fairly new to database systems, you might think rebuilding indexes for performance is something that only PostgreSQL needs to do. Other DBMSs require this as well, they just maybe don't say so.
Indexes are designed for performance, and in all databases, deleting index entries causes contention and loss of performance. PostgreSQL does not remove index entries for a row when that row is deleted, so an index can be filled with dead entries. PostgreSQL does attempt to remove dead entries when a block becomes full, but that doesn't stop a small numbers of dead entries from accumulating in many data blocks.
No REINDEX CONCURRENTLY command has been added yet to PostgreSQL.