Documentazione di PostgreSQL 9.0 > Il linguaggio SQL > Controllo concorrente > Locking e indici
PrecedenteControlli di consistenza dei dati a livello di applicazioneSuggerimenti per migliorare le prestazioniSuccessivo

13.5. Locking e indici

Nonostante PostgreSQL™ fornisce accesso in lettura/scrittura "non bloccante" ai dati di tabella, l'accesso in lettura/scrittura non bloccante non è attualmente offerto per ogni metodo di accesso agli indici implementato in PostgreSQL™. I diversi tipi di indice sono gestiti nel seguente modo:

indici B-tree e gist

Lock di pagina condivisi/esclusivi a breve termine sono usati per accessi il lettura/scrittura. I lock vengono rilasciati immediatamente dopo che ogni indice di riga viene preso o inserito. Questi tipi di indice forniscono le maggiori condizioni di concorrenza senza deadlock.

indici hash

Share/exclusive hash-bucket-level locks are used for read/write access. Locks are released after the whole bucket is processed. Bucket-level locks provide better concurrency than index-level ones, but deadlock is possible since the locks are held longer than one index operation.

indici gin

Lock di pagina condivisi/esclusivi a breve termine sono usati per accessi il lettura/scrittura. I lock sono rilasciati immediatamente dopo che ogni indice di riga viene preso o inserito. Ma si noti che l'inserimento di un valore sottoposto a indice gin di solito produce diversi inserimenti di chiavi indice per riga, così gin potrebbe svolgere un considerevole lavoro per l'inserimento di un singolo valore.

Correntemente, gli indici B-tree offrono la miglior prestazione per applicazioni concorrenti; dato che hanno anche maggiori caratteristiche rispetto agli indici hash, sono il tipo di indice raccomandato per applicazioni concorrenti che hanno bisongno di indicizzare dati scalari. Quando si ha a che fare con dati non scalari, i B-tree non sono utili, si dovrebbero unvece usare gli indici gist o gin.

Documentazione di PostgreSQL 9.0 > Il linguaggio SQL > Controllo concorrente > Locking e indici
PrecedenteControlli di consistenza dei dati a livello di applicazioneSuggerimenti per migliorare le prestazioniSuccessivo