暂无图片
postgresql create index concurrently会对运行中的数据库产生影响吗?
我来答
分享
喵喵娜戈呜
2021-12-30
postgresql create index concurrently会对运行中的数据库产生影响吗?

postgresql create index concurrently会对运行中的数据库产生影响吗?

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
阎书利

这种方式上的是ShareUpdateExclusiveLock,不会阻塞DML操作。创建索引时候指定concurrently,需要先后两次对表全表扫描完成build,第一次扫描创建索引,不阻塞读写,第二次扫描会合并第一次扫描到目前为止的变更。第二次扫描之后,索引创建必须等待任何持有第二次扫描拿的快照的事务终止,而且创建索引创建的ShareUpdateExclusiveLock是四级锁,会和大于4级的锁冲突,所以有可能会引发阻塞或死锁问题。例如两个会话同时对一个表建立concurrently索引,就会引发死锁问题。

暂无图片 评论
暂无图片 有用 1
暂无图片
喵喵娜戈呜
题主
2021-12-31
好的 谢谢解答
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏