Simon Riggs, leader del team 2ndQuadrant, ha introdotto in PostgreSQL 9.2 il comando SQL DROP INDEX CONCURRENTLY [IF EXISTS]
.
Questa nuova funzionalità permette di eliminare un indice evitando di acquisire un lock di tipo esclusivo sull’intera tabella, migliorando la disponibilità della base dati. In pratica, la cancellazione di un indice non bloccherà operazioni di UPDATE
, DELETE
, INSERT
o SELECT
sulla tabella, come avveniva con il comando DROP INDEX
.
Nel dettaglio, il tipo di lock richiesto da DROP INDEX CONCURRENTLY
è ShareUpdateExclusiveLock, mentre DROP INDEX
richiede un lock di tipo AccessExclusiveLock.
Come descritto nella documentazione del comando DROP INDEX
, la rimozione concorrente è atomica e non può avvenire all’interno di un blocco di transazione (pertanto non è possibile specificare più di un indice per volta).
This Post Has 0 Comments