暂无图片
pg中的concurrently参数重建索引,如果索引没有完成,查询能否使用上索引?
我来答
分享
暂无图片 匿名用户
pg中的concurrently参数重建索引,如果索引没有完成,查询能否使用上索引?

pg中的concurrently参数重建索引,如果重建索引没有完成,查询能否使用上索引?

oracle 用的类似在线重定义,索引没有重建完成,对于查询不受影响,仍然可以使用索引扫描


不知道pg是否可以?

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
青空如璃

在PostgreSQL中,使用CONCURRENTLY选项进行索引的重建允许在不阻止对表的并发插入、更新或删除操作的情况下重建索引。这是PostgreSQL提供的一个非常有用的特性,特别是在需要重建大型表上的索引时,可以显著减少对数据库操作的影响。

  1. 查询可以使用原索引:在重建索引过程中,原索引仍然存在并可用。因此,即使新的索引正在并发地重建,查询仍然可以使用原索引来加速查询过程。
  2. 新索引不可用:直到并发重建过程完成,新的索引才会变得可用。在重建过程中,新的索引是不可用的,因此查询不会使用它。
  3. 性能考虑:虽然并发重建索引可以减少对数据库操作的影响,但它仍然会消耗系统资源。在重建过程中,可能会观察到一些性能下降,特别是在大型表上。因此,最好在系统负载较低的时候进行此类操作。
  4. 完成后的切换:当并发重建索引完成后,PostgreSQL会自动将新的索引替换为旧的索引,并确保所有的查询和数据修改操作都可以无缝地切换到新的索引上。

总的来说,与Oracle的在线重定义类似,PostgreSQL的CONCURRENTLY选项允许在不中断数据库操作的情况下重建索引。在重建过程中,查询仍然可以使用原索引,而新的索引在重建完成之前是不可用的。完成后,系统会自动切换到新的索引上。

需要注意的是,虽然并发重建索引可以减少对数据库操作的影响,但在进行此类操作时仍应谨慎,并在系统负载较低的时候进行,以避免可能的性能下降。

暂无图片 评论
暂无图片 有用 1
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
Pg有没有类似Oracle的闪回机制?
回答 1
可以了解下pgdirtyread这个插件
vacuum之后,表变大了,怎么回事?
回答 1
首先,\dt查看到的表大小包含:表main文件、fsm、vm以及toast等内容,其次vm、fsm文件不是建表时创建的,而是这个表第一次vacuum时创建的。main文件8k、fsm文件24k、vm文
postgreSQL 把表中某个字段的base64码全部update解码,怎么写?
回答 1
可以尝试以下语句来更新表中某个字段的base64码全部解码UPDATEtablenameSETcolumnnamedecode(columnname::text,'base64');其中,tablen
mysql数据库导入到postgresql有什么方法?
回答 1
已采纳
ogg
postgreSQL 提供nodejs的官方驱动吗?
回答 1
pg、nodepostgres
postgresql 源码里面的contrib里面的sql文件,它们是在pg启动时会把所有的sql执行一遍吗?
回答 1
已采纳
并不是,contrib下面是插件源码,需要编译才能使用,需要用到某个插件时可以通过psql>createextensionxxx;来启用该插件。
postgreSQL 如果数据已经被误删除了,在编译安装walminer还能通过解析wal日志生成undo sql 吗?
回答 1
不一定
pg中执行计划中常用的操作符对应的解释?
回答 1
PG执行计划解析https://blog.csdn.net/weixin37692493/article/details/109232501
greenplum日志提示:process (PID XXXXX) was terminated by signal X,节点频繁宕掉
回答 2
考虑下SSH设置,并发高的话,SSH超阀值是一种可能
Pg用进程的模式,用内存是不是很大?
回答 1
数据库都用内存大