【发布时间】:2017-08-24 17:17:53
【问题描述】:
我是 Postgres 的新手,所以这可能很明显(或者非常困难,我不确定)。
我想强制一个表或行一次“锁定”至少几秒钟。这将导致第二个操作“等待”。
我正在使用带有“github.com/lib/pq”的 golang 与数据库进行交互。
我需要这个的原因是因为我正在做一个监控 postgresql 的项目。谢谢你的帮助。
【问题讨论】:
-
将事务隔离级别设置为可序列化postgresql.org/docs/9.1/static/sql-set-transaction.html
-
This 答案与您想要的非常相似。只需使用任何必要的隔离级别。
-
@Hackerman 嗯,效果很好。
-
OP 只需要记住,设置隔离级别是服务器的开销……更安全 -> 性能更低……这就是它的工作方式。
-
另外一个事务也有可能由于序列化错误而失败。您可能还想使用“选择更新”。并准备好重试由于序列化错误而失败的事务。
标签: postgresql go locking load-generator