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

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

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


不知道pg是否可以?

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

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

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

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

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

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


请输入正文
提交
相关推荐
pg_rman源码安装时候,make时候提示pg_config命令未找到
回答 1
pgconfig可以在pg源码编译安装后的bin目录找到,一般在linux环境下,你再用户bashprofile配置的PATH搜索路径中增加该bin目录;这种错误一般都是编译PG的扩展包需要的,我上次
pg的定时任务是怎么实现的?
回答 1
pgcron
pg中大家都用什么架构,主从,还是bucardo还是别的架构?
回答 5
学习
从postgreSQL 11通过 pg_dump转储到 pg12,现在报错 pg_dump: warning: WITH OIDS is not supported anymore,怎么处理?
回答 1
从PostgreSQL11到PostgreSQL12的迁移过程中,你可能会遇到pgdump报错的问题,特别是涉及到WITHOIDS的情况。在PostgreSQL12中,WITHOIDS不再被支持,因此
pg索引的字段的唯一值数量,如何查看
回答 1
1、统计最新数据analyzet;2、使用pgstats查询字段唯一值数量selectattname,ndistinctfrompgstatswheretablename‘t’;ndistinct&g
Pg有没有类似Oracle的闪回机制?
回答 1
可以了解下pgdirtyread这个插件
connot open relation with oid xxx
回答 2
已采纳
问题已找到。有人误删除了pgclass的相关记录,导致对应的relation无法访问报错error:couldnotopenrelationwithoidxxx。navicat的【视图】需要用到pgg
postgreSQL UNLOGGED表不记日志,有没有办法让它保留记录,但是不记录日志(相当于重启还保留记录值)?
回答 1
首先unlogged表只是不记录日志,重启后数据还是在的;其次重启数据不保留的是temp表。
pg中!~操作符啥意思
回答 2
https://www.modb.pro/db/225450可以参考下
repmgr5.1如何重新注册主库,主库注册错了,想重新注册
回答 1
如果你在PostgreSQL的日志中发现了删除记录的记录,但没有发现修改或新增记录的记录,那么有可能是因为删除操作是通过直接执行SQL语句或使用一些工具进行的,而不是通过应用程序进行的。如果想要监视数