postgres:怎么产生表死锁的现象呢?最简单的情况即可

postgres:怎么产生表死锁的现象呢?最简单的情况即可,第1张

假设有2个并行的 transaction TA和TB。

-- transaction TA:

BEGIN

UPDATE table_a .....

UPDATE table_b .....

COMMIT

-- transaction TB:

BEGIN

UPDATE table_b .....

UPDATE table_a .....

COMMIT

下面情况会导致死锁

1, TA 运行 到 UPDATE table_a ....., 这个可以有,锁了table_a。

2,然后 TB 运行 到 UPDATE table_b ....., 这个可以有,锁了table_b。

3,然后 TB 运行 到 UPDATE table_a ....., 这个不可以,因为TA锁了table_a,TB等待。

4,然后 TA 运行 到 UPDATE table_a ....., 这个不可以,因为TB锁了table_b,TA等待。

然后就没有然后了。

pg是有同步锁机制。记这款软件是有同步锁机制的,只要你用电脑打开了pg软件之后,然后进入到系统设置里面,就会看到同步锁机制,这款锁机制是为了让软件系统自定运行,才会有锁机制这个东西的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11562544.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存