Eu tenho uma grande tabela postgresql que acho que começou a ficar inchada, e gostaria de corrigir isso. Normalmente eu poderia fazer um VACUUM FULL
ou CLUSTER
, mas estou pensando se posso consertar o inchaço sem afetar o desempenho de leitura / gravação.
Se houver índice inchado, eu posso (manualmente) criar um novo índice simultaneamente indexando as mesmas coisas que o antigo, mas com um nome diferente, e quando for criado, eu posso deletar o antigo, inchado. Isso permite que eu corrija o inchaço do índice com um efeito mínimo no uso da produção (já que há sempre um índice lá, e as leituras e gravações não são bloqueadas).
Existe alguma abordagem como essa que funcionaria para tabelas? Eu poderia CREATE TABLE newtable LIKE old_bloated_table INCLUDING ...
, o que criaria a tabela novamente. Então uma gota & renomear. Mas os dados podem estar fora de sincronia. Existe alguma maneira de garantir que os dados sejam os mesmos entre as tabelas? (No caso do índice, o índice estará sempre em sincronia com a tabela).
Tags postgresql