更改现有表的fillfactor

Dai*_*mon 8 postgresql fillfactor

是否可以在PostgreSQL 8.4中更改现有表的fillfactor?

或者我是否必须使用新的fillfactor创建表的副本 - 由于外键问题,这不是最佳方法?

Fra*_*ens 15

是的,这是可能的.但是你必须在VACUUM FULL或CLUSTER这个表后重写表.

ALTER TABLE foo SET ( fillfactor = 50);
VACUUM FULL foo;
Run Code Online (Sandbox Code Playgroud)

  • @JoeVanDyk:请注意,因为pg 9.0`VACUUM FULL`很好 - 正如Postgres Wiki中所记录的那样. (6认同)
  • 请不要“真空已满”。`pg_repack` 正在做同样的工作,没有对表的排他锁。又名在线真空完整 https://github.com/reorg/pg_repack (2认同)