【发布时间】:2017-10-11 09:03:35
【问题描述】:
我们需要在不锁定表的情况下包含索引大小。我尝试使用“同时创建索引..”但它导致在其中一个系统上创建无效索引。我们试图做 - 删除索引 - 同时删除索引 - 重新索引表 然而,他们也间歇性地被卡住了。这使得通过脚本同时创建索引的整个方法很容易受到攻击。
任何想法如何在没有人工干预的情况下进行充分证明?如果没有,还有哪些其他有效方法可以在大型和繁忙的表上以自动方式在 postgreSQL 上包含索引大小。
【问题讨论】:
-
无效索引通常是由于在运行时取消了并发索引创建。索引创建是否成功完成?
-
“包含索引大小”是什么意思?索引具有它需要的大小,并且该大小是不可配置的。
CREATE/DROP INDEX CONCURRENTLY仍然需要对表进行排他锁,但只需要很短的时间。没有办法避免这种情况,而且在繁忙的服务器上可能会造成破坏。 -
我的意思是减少随时间增长的 PG 表的索引大小 - 这可以使用重新索引表/创建 - 删除索引来完成,但这两者都是侵入性技术
-
激进的真空设置是否有助于保持索引大小/减少索引膨胀?