![Resolver o inchaço da tabela PostgreSQL sem afetar leituras/gravações?](https://rvso.com/image/668784/Resolver%20o%20incha%C3%A7o%20da%20tabela%20PostgreSQL%20sem%20afetar%20leituras%2Fgrava%C3%A7%C3%B5es%3F.png)
Eu tenho uma grande tabela postgresql que acho que começou a ficar inchada e gostaria de consertar isso. Normalmente eu poderia fazer um VACUUM FULL
ou CLUSTER
, mas estou me perguntando se posso consertar o inchaço sem afetar o desempenho de leitura/gravação.
Se houver inchaço no índice, posso (manualmente) criar um novo índice simultaneamente que indexe as mesmas coisas que o antigo, mas com um nome diferente, e quando for criado, posso excluir o antigo e inchado. Isso me permite corrigir o inchaço do índice com efeito mínimo no uso da produção (já que sempre há 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. Em seguida, solte e renomeie. Mas os dados podem estar fora de sincronia. Existe alguma maneira de garantir que os dados sejam iguais entre as tabelas? (No caso do índice, o índice estará sempre sincronizado com a tabela).