gpt4 book ai didi

postgresql - PostgreSQL 中的 ROW EXCLUSIVE 到底是什么?

转载 作者:行者123 更新时间:2023-11-29 11:21:10 26 4
gpt4 key购买 nike

我理解PostgreSQL insert使用ROW EXCLUSIVE锁,那是不是意味着insert可以并行,一次insert不会锁住整张表?

有问题的表有一个在数据库之外生成的主键,没有额外的索引(但我很好奇如果不是这种情况会发生什么)。

编辑 1:

根据文档,ROW EXCLUSIVE 与 CREATE INDEX 获取的 SHARE 冲突。

这是否意味着如果表有索引,插入将锁定整个表?

或者只有在第一次创建索引的时候才会锁表?

另外,据我了解,主键也是索引,对吧?

最佳答案

并发插入不应相互阻塞,除非它们将冲突的键插入到唯一索引中,在这种情况下,第二个插入将等待包含第一个的事务被提交或回滚,然后中止或继续。主键作为唯一索引实现。

非唯一索引不应引起额外的锁冲突。创建索引将阻止对表的插入和更新,尽管您可以将 concurrently 添加到命令中以避免这种情况,但速度会有所下降。

关于postgresql - PostgreSQL 中的 ROW EXCLUSIVE 到底是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14530360/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com