Je pravda, že INSERT
, UPDATE
nebo DELETE
musí získat ROW EXCLUSIVE
zámek na stole, který bude aktualizován.
Tento zámek však nebrání SELECT
od normální práce. SELECT
vyžaduje pouze ACCESS SHARE
zámek. Tento zámek je kompatibilní s ROW EXCLUSIVE
- jinými slovy, můžete perfektně spustit SELECT
zatímco ostatní data jsou aktualizována pomocí INSERT
, UPDATE
nebo DELETE
, pokud nezískáte žádné explicitní zámky.
Jinými slovy, při použití druhého přístupu byste nikdy neměli vidět žádná uváznutí (jen nepoužívejte SELECT FOR UPDATE
a budete v pořádku).
Další informace naleznete v dokumentaci PostgreSQL .