我写了一个简单的脚本来重新索引我们的PG数据库,每周一次.它有一个简单的逻辑:
作为适当的懒惰开发人员,我不喜欢这个概念,我必须不断更新我的hashmap.(另一方面,我这样做时发现了两个效率低下的指数.)
pg_index看起来很有用,有没有办法从中重建一个create index子句?
获取列列表很容易,但我们使用不同的索引类型,字段的不同opclasses,部分索引......谁知道什么.重要的是要确保我们将首先获得与用于创建索引的完全相同的子句.
Cra*_*ger 11
是的,这里有一个内置功能pg_get_indexdef.
例如:
regress=> SELECT pg_get_indexdef('demo_pkey'::regclass);
pg_get_indexdef
--------------------------------------------------------
CREATE UNIQUE INDEX demo_pkey ON demo USING btree (id)
(1 row)
Run Code Online (Sandbox Code Playgroud)