Hacker News new | ask | show | jobs
by ComodoHacker 899 days ago
When you're incrementing by using UPDATE ... SET value = value + 1, the database holds the locks for the minimum time needed. Everything else is less efficient.

In more complex scenarios, FOR UPDATE is the solution.

2 comments

Not sure what you mean by "the database holds locks for the minimum time needed." Locks are always held until the transaction commits.
When there's a big chance of multiple tasks grabbing the same rows, processing them, then updating them, marking them for update since the beginning is better. E.g. a message queue like structure where messages should be processed only once.