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

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

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

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

暂无图片 评论
暂无图片 有用 1
打赏 0
暂无图片
喵喵娜戈呜
题主
2021-12-31
好的 谢谢解答
回答交流
Markdown


请输入正文
提交
相关推荐
请问:Postgresql递归查询,使用ARRAY保存path, 出现数组数据类型错误应如何解决?见下图
回答 2
可以上传一下表结构看看
postgreSQL里怎么切换结束符?
回答 1
PostgreSQL数据库使用psql的时候,需要在命令后加上;(分号)或者是\g来表示语句已经结束以执行查询.
pg 中一个表空间中最多可以有建多少个对象?
回答 1
pg一个数据库可以有1,431,650,303个表或者索引pg的表空间指向操作系统的目录,表空间限制主要来自操作系统,比如,文件系统/目录大小,文件系统inode数量
postgresql+repmgr查看状态总是有感叹号
回答 2
已采纳
执行repmgrstandbyfollow试试
pg_cron 如何支持多DB运行?
回答 1
使用scheduleindatabase函数SELECTcron.scheduleindatabase('mydb2job4','',$$insertintotest4values((random()
postgresql state_change的时间很久,而且状态是active,这时SQL一直在执行吗?
回答 1
是的,pgstatactivity中state字段为active表示sql正在运行。
通过slot物理复制槽的搭建的一主多从,在一次机器重启后,我的一台从库提示wal文件被移除,这是什么原因导致的呢
回答 1
1.看看你从库的恢复参数配置2.如果磁盘空间充足可以配置archivemodealways,让配置也保留一份WAL,如果恢复时所需的WAL在归档目录可以直接从本地归档目录拷贝
postgresql 的 order by 是非稳定排序吗?
回答 2
已采纳
是否稳定,依赖于你orderby 的字段或表达式如果是字段 那么是稳定的如果是表达式。那么你orderby 表达式中如果有不确定函数,那么就是不稳定的,否则就是稳定的。
postgresql主从切换后,逻辑复制槽如何转移?
回答 1
已采纳
我做过主从切换AB.A写B同步,然后切换,B写A同步,再切换回来。A写B同步。整个过程不用人工去动复制槽
postgreSQL 支持ipv6吗?
回答 1
支持的配置listenaddresses 即可Theentry 0.0.0.0 allowslisteningforallIPv4addressesand ::