Acabei de excluir uma grande parte dos dados armazenados em um jsonb dentro da minha tabela de usuários (não é mais necessário) e apenas mantenho um id dentro dessa coluna. Eu esperava liberar muito espaço em disco com essa ação.
UPDATE users SET my_jsonb = '{id: xxxx }';
O problema é que quando tento ver o espaço livre no disco continua o mesmo
/dev/md125 935G 501G 387G 57%
Também a mesa
Table Size External
users | 497 GB | 478 GB
Minha última opção é tentar um VACUUM FULL users
, mas como essa tabela é usada em ambiente de produção, não seria conveniente bloqueá-la por uma quantidade de tempo desconhecida.
Estou executando um banco de dados postgres 10.5 em uma máquina CENTOS RHEL7.
Um VACUUM simples disponibilizará o espaço livre para novos dados (ou seja, outros dados JSON TOASTed).
Se você realmente deseja devolver o espaço livre ao sistema operacional e não pode pagar o bloqueio exclusivo, tente pg_repack :
Ainda precisa de espaço suficiente para a tabela original e a nova cópia.