PostgreSQL

CREATE INDEX blocks all writes during build

critical
availabilityUpdated Jan 25, 2026
Technologies:
How to detect:

Non-concurrent index creation acquires ACCESS EXCLUSIVE lock on the table, blocking all INSERT, UPDATE, DELETE operations until index build completes, potentially causing write outages on large tables

Recommended action:

Use CREATE INDEX CONCURRENTLY instead of CREATE INDEX on production tables. This allows writes to continue during index creation. Note: CONCURRENTLY takes longer, cannot run inside a transaction, and may fail leaving an invalid index (check with \d tablename).