Det er rigtigt, at INSERT
, UPDATE
eller DELETE
skal erhverve ROW EXCLUSIVE
lås på bordet for at blive opdateret.
Denne lås forhindrer dog ikke SELECT
fra at arbejde normalt. SELECT
kræver kun ACCESS SHARE
låse. Denne lås er kompatibel med ROW EXCLUSIVE
- med andre ord, du kan perfekt udføre SELECT
mens andre data opdateres med INSERT
, UPDATE
eller DELETE
, så længe du ikke erhverver nogen eksplicitte låse.
Med andre ord bør du aldrig se nogen dødvande ved brug af anden tilgang (brug bare ikke SELECT FOR UPDATE
og du vil klare dig).
Læs mere i PostgreSQL-dokumentation .