PostgreSQL
Prev | Chapter 13. Multi-Version Concurrency Control | Next

# Locking and Indices

Though Postgres provides unblocking read/write access to table data, unblocked read/write access is not provided for every index access methods implemented in Postgres.

The various index types are handled as follows:

GiST and R-Tree indices

  Share/exclusive index-level locks are used for read/write access. Locks are released after statement is done.

Hash indices

  Share/exclusive page-level locks are used for read/write access. Locks are released after page is processed.

  Page-level locks produces better concurrency than index-level ones but are subject to deadlocks.

Btree

  Short-term share/exclusive page-level latches are used for read/write access. Latches are released immediately after the index tuple is inserted/fetched.

  Btree indices provide the highest concurrency without deadlock conditions.

Prev | Home | Next
Locking and Tables | Up | Data consistency checks at the application level