PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Modalità di blocco PostgreSQL

È vero che INSERT , UPDATE o DELETE deve acquisire ROW EXCLUSIVE blocco sulla tabella da aggiornare.

Tuttavia, questo blocco non impedisce SELECT dal lavorare normalmente. SELECT richiede solo ACCESS SHARE serratura. Questo lucchetto è compatibile con ROW EXCLUSIVE - in altre parole, puoi eseguire perfettamente SELECT mentre gli altri dati vengono aggiornati da INSERT , UPDATE o DELETE , purché non si acquisiscano blocchi espliciti.

In altre parole, non dovresti mai vedere alcun deadlock usando il secondo approccio (basta non usare SELECT FOR UPDATE e starai bene).

Maggiori informazioni nella documentazione PostgreSQL .