在数据库管理系统中,select for update是一种常见的操作,用于查询数据并将其锁定,以确保在事务中其他用户不能修改或获取相同的数据。然而,在PostgreSQL中,有些人认为select for update是有害的。

根据Cybertec PostgreSQL的文章,使用select for update可能会导致令人惊讶的结果和性能问题。在高负载的环境下,过度使用select for update可能导致锁定竞争,降低系统的性能和响应速度。

此外,使用select for update也可能会导致死锁的情况。当多个事务同时尝试对相同的数据行进行锁定时,可能会出现死锁,导致事务无法继续执行。

虽然select for update在某些情况下是必要的,但在大多数情况下,应该避免使用它。相反,可以考虑使用更有效的锁定策略,如悲观锁或乐观锁,以避免性能问题和死锁情况。

因此,在PostgreSQL中,要认真考虑select for update的使用场景,并根据实际情况选择合适的锁定策略,以确保系统的稳定性和性能。不要盲目地使用select for update,而要根据具体情况进行权衡和选择。

详情参考

了解更多有趣的事情:https://blog.ds3783.com/