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

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

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


不知道pg是否可以?

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

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

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

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

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

暂无图片 评论
暂无图片 有用 1
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏