暂无图片
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 unlogged 不记录wal日志,从库的数据又是通过wal日志来的,为什么unlogged表还是可以在从库查到数据?
回答 1
尽管unlogged表的更改不会被记录在WAL日志中,但PostgreSQL保留了一些元数据信息来确保从库可以正确地重放主库上的更改。这些元数据信息包括unlogged表的元数据、每个事务的开始和结束
postgreSQL 逻辑复制订阅端表变化怎么监控?
回答 1
看日志
bt_index_check是从哪个版本开始支持的??
回答 2
这个函数是从pg11开始,amcheck插件提供的函数。
pg的定时任务是怎么实现的?
回答 1
pgcron
postgres_exporter如何自动获取/使用数据库上的实例?
回答 1
exportPGEXPORTERAUTODISCOVERDATABASEStrue
pg_current_wal_lsn显示No function matches the given name and argument是啥问题?
回答 1
你的pg可能是较低的版本,把wal换成xlog,lsn换成location试试。
pg如何统计一个时间段的事务数量?比如2024-03-12,下午16:00到16:30
回答 1
在PostgreSQL中,可以使用系统视图pgstatdatabase来统计一个时间段内的事务数量。具体步骤如下:1.首先记录开始时间点的统计信息:sqlSELECTxactcommit,xactro
pg怎么把数据表导出成Excel?
回答 2
COPYtestTO‘/home/postgres/testcopy.csv’WITHCSVheader;–将test表导出到/home/postgres/testcopy.csv
pg中字符集相关的参数和哪些层面需要设置?
回答 1
在PostgreSQL中,与字符集相关的参数主要包括以下几个:clientencoding:指定客户端编码。它决定了客户端发送和接收数据时使用的字符集。serverencoding:指定服务器端编码。
wal_level 的疑问
回答 2
你的理解是正确的