Il est vrai que INSERT
, UPDATE
ou DELETE
doit acquérir ROW EXCLUSIVE
verrouiller la table à mettre à jour.
Cependant, ce verrou n'empêche pas SELECT
de travailler normalement. SELECT
ne nécessite que ACCESS SHARE
bloquer. Cette serrure est compatible avec ROW EXCLUSIVE
- en d'autres termes, vous pouvez parfaitement exécuter SELECT
tandis que les autres données sont mises à jour par INSERT
, UPDATE
ou DELETE
, tant que vous n'acquérez aucun verrou explicite.
En d'autres termes, vous ne devriez jamais voir de blocages en utilisant la deuxième approche (n'utilisez simplement pas SELECT FOR UPDATE
et tout ira bien).
En savoir plus dans la documentation PostgreSQL .