什么是PostgreSQL的确切ROW EXCLUSIVE?(What is ROW EXCLUSI

2019-08-08 07:01发布

据我所知,PostgreSQL的插入使用ROW EXCLUSIVE锁,这是否意味着刀片可以并行,而一个刀片将不锁定整个表?

表中的问题有DB和没有额外的指标之外生成主键(但我很好奇,如果这是没有的情况下会发生什么)。

编辑1:

每文档,行已被CREATE INDEX获取与分享独家冲突。

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

或将创建索引第一次当表仅锁定?

另外,我现在明白了,主键也是一个指标,对不对?

Answer 1:

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

非唯一索引应该不会造成额外的锁冲突。 创建索引将阻止插入和更新表中,虽然可以只添加concurrently给命令,以避免这一点,对于一些速度上的惩罚。



文章来源: What is ROW EXCLUSIVE in PostgreSQL exactly?